Skip to content

Commit 4d8c709

Browse files
committed
Use socket.io. Breaking change!!
Former-commit-id: eba24734df435ec5578326bde2b4b949d52a5ca7 [formerly a026571b9c36693fb8e3030ecaa0de2b1ff44286] Former-commit-id: e4037954574dae5500cee8a2d4cb1bfa624f1611
1 parent c68a096 commit 4d8c709

File tree

3 files changed

+28
-34
lines changed

3 files changed

+28
-34
lines changed

conn.go

+26-32
Original file line numberDiff line numberDiff line change
@@ -3,39 +3,27 @@
33
package main
44

55
import (
6-
"github.com/gorilla/websocket"
6+
"github.com/googollee/go-socket.io"
77
"log"
88
"net/http"
99
)
1010

1111
type connection struct {
1212
// The websocket connection.
13-
ws *websocket.Conn
13+
ws socketio.Socket
1414

1515
// Buffered channel of outbound messages.
16-
send chan []byte
17-
}
18-
19-
func (c *connection) reader() {
20-
for {
21-
_, message, err := c.ws.ReadMessage()
22-
if err != nil {
23-
break
24-
}
25-
26-
h.broadcast <- message
27-
}
28-
c.ws.Close()
16+
send chan []byte
17+
incoming chan []byte
2918
}
3019

3120
func (c *connection) writer() {
3221
for message := range c.send {
33-
err := c.ws.WriteMessage(websocket.TextMessage, message)
22+
err := c.ws.Emit("message", string(message))
3423
if err != nil {
3524
break
3625
}
3726
}
38-
c.ws.Close()
3927
}
4028

4129
func uploadHandler(w http.ResponseWriter, r *http.Request) {
@@ -67,20 +55,26 @@ func uploadHandler(w http.ResponseWriter, r *http.Request) {
6755
}
6856
}
6957

70-
func wsHandler(w http.ResponseWriter, r *http.Request) {
71-
w.Header().Set("Access-Control-Allow-Origin", "*")
72-
log.Print("Started a new websocket handler")
73-
ws, err := websocket.Upgrade(w, r, nil, 1024, 1024)
74-
if _, ok := err.(websocket.HandshakeError); ok {
75-
http.Error(w, "Not a websocket handshake", 400)
76-
return
77-
} else if err != nil {
78-
return
58+
func wsHandler() *socketio.Server {
59+
server, err := socketio.NewServer(nil)
60+
if err != nil {
61+
log.Fatal(err)
7962
}
80-
//c := &connection{send: make(chan []byte, 256), ws: ws}
81-
c := &connection{send: make(chan []byte, 256*10), ws: ws}
82-
h.register <- c
83-
defer func() { h.unregister <- c }()
84-
go c.writer()
85-
c.reader()
63+
64+
server.On("connection", func(so socketio.Socket) {
65+
c := &connection{send: make(chan []byte, 256*10), ws: so}
66+
h.register <- c
67+
so.On("command", func(message string) {
68+
h.broadcast <- []byte(message)
69+
})
70+
so.On("disconnection", func() {
71+
h.unregister <- c
72+
})
73+
go c.writer()
74+
})
75+
server.On("error", func(so socketio.Socket, err error) {
76+
log.Println("error:", err)
77+
})
78+
79+
return server
8680
}

hub.go.REMOVED.git-id

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ed939bdfc956a27cad29238fb0ec6bf119a75a75
1+
43c9aa77ac926c1bc477bd345a518a17089a5d13

main.go.REMOVED.git-id

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
82b23c9171608bb926d86f890d6c78ca2163c9bc
1+
684757686ac401672ce2bc6fd5ca3ba3dceededf

0 commit comments

Comments
 (0)