Skip to content
This repository was archived by the owner on Sep 29, 2024. It is now read-only.

Commit 8d7a699

Browse files
committed
ADD: new example with gin-gonic web framework
1 parent 3f1229f commit 8d7a699

File tree

2 files changed

+54
-1
lines changed

2 files changed

+54
-1
lines changed

example/main.go renamed to example/default-server/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func main() {
4242
defer server.Close()
4343

4444
http.Handle("/socket.io/", server)
45-
http.Handle("/", http.FileServer(http.Dir("./asset")))
45+
http.Handle("/", http.FileServer(http.Dir("../asset")))
4646
log.Println("Serving at localhost:8000...")
4747
log.Fatal(http.ListenAndServe(":8000", nil))
4848
}

example/gin-gonic/main.go

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"log"
6+
"net/http"
7+
8+
"github.com/gin-gonic/gin"
9+
10+
socketio "github.com/googollee/go-socket.io"
11+
)
12+
13+
func main() {
14+
router := gin.New()
15+
server, err := socketio.NewServer(nil)
16+
if err != nil {
17+
log.Fatal(err)
18+
}
19+
server.OnConnect("/", func(s socketio.Conn) error {
20+
s.SetContext("")
21+
fmt.Println("connected:", s.ID())
22+
return nil
23+
})
24+
server.OnEvent("/", "notice", func(s socketio.Conn, msg string) {
25+
fmt.Println("notice:", msg)
26+
s.Emit("reply", "have "+msg)
27+
})
28+
server.OnEvent("/chat", "msg", func(s socketio.Conn, msg string) string {
29+
s.SetContext(msg)
30+
return "recv " + msg
31+
})
32+
server.OnEvent("/", "bye", func(s socketio.Conn) string {
33+
last := s.Context().(string)
34+
s.Emit("bye", last)
35+
s.Close()
36+
return last
37+
})
38+
server.OnError("/", func(e error) {
39+
fmt.Println("meet error:", e)
40+
})
41+
server.OnDisconnect("/", func(s socketio.Conn, msg string) {
42+
fmt.Println("closed", msg)
43+
})
44+
45+
go server.Serve()
46+
defer server.Close()
47+
48+
router.GET("/socket.io/*any", gin.WrapH(server))
49+
router.POST("/socket.io/*any", gin.WrapH(server))
50+
router.StaticFS("/", http.Dir("../asset"))
51+
52+
router.Run()
53+
}

0 commit comments

Comments
 (0)