Wrapper for use Echo context with Socket.io.
Documentation
Install
Install the package with:
go get -u github.com/webx-top/echo-socket.io
Import it with:
import esi "github.com/webx-top/echo-socket.io"
and use esi
inside your code.
Example
package main
import (
"fmt"
socketio "github.com/googollee/go-socket.io"
"github.com/webx-top/echo"
"github.com/webx-top/echo/engine/standard"
esi "github.com/webx-top/echo-socket.io"
)
func main() {
e := echo.New()
e.Any("/socket.io/", socketIOWrapper())
e.Logger().Fatal(e.Run(standard.New(":8080")))
}
func socketIOWrapper() func(context echo.Context) error {
wrapper, err := esi.NewWrapper(nil)
if err != nil {
fmt.Println(err.Error())
return nil
}
wrapper.OnConnect("", func(context echo.Context, conn socketio.Conn) error {
context.Set("myDataName","myDataValue")
fmt.Println("connected:", conn.ID())
return nil
})
wrapper.OnError("", func(context echo.Context, conn socketio.Conn, e error) {
fmt.Println("meet error:", e)
})
wrapper.OnDisconnect("", func(context echo.Context, conn socketio.Conn, msg string) {
fmt.Println("closed", msg)
})
wrapper.OnEvent("", "test", func(context echo.Context, conn socketio.Conn, msg string) {
context.Set("myDataName","myDataValue")
fmt.Println("notice:", msg)
conn.Emit("test", msg)
})
return wrapper.HandlerFunc
}