Skip to content

Commit 0aa8280

Browse files
committed
refactor(server/socket): drop my 💩, add some log, rename Nps to Nsp (namespace)
1 parent 7c4b416 commit 0aa8280

File tree

2 files changed

+31
-32
lines changed

2 files changed

+31
-32
lines changed

server.go

Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ func (s *Io) ServeHTTP(w http.ResponseWriter, r *http.Request) {
110110

111111
header := r.Header
112112
if slices.Contains(header["Connection"], "Upgrade") && header.Get("Upgrade") == "websocket" {
113-
// if true {
114113
log.Println("conection:upgrade")
115114

116115
upgrader.CheckOrigin = func(r *http.Request) bool { return true }
@@ -121,19 +120,13 @@ func (s *Io) ServeHTTP(w http.ResponseWriter, r *http.Request) {
121120
}
122121
defer c.Close()
123122

124-
// var id string
125-
126123
if r.URL.Query()["sid"] != nil {
127-
log.Print("sid presented ! ")
128-
129124
return
130-
// Still allows it ?
131125
}
132-
// log.Println("SID:", id)
133126

134127
socket := Socket{
135128
Id: s.randomUUID(),
136-
Nps: "/",
129+
Nsp: "/",
137130
Conn: &Conn{
138131
http: c,
139132
reqHeaders: r.Header.Clone(),
@@ -147,11 +140,7 @@ func (s *Io) ServeHTTP(w http.ResponseWriter, r *http.Request) {
147140
pingTime: s.pingInterval,
148141
}
149142

150-
defer func() {
151-
log.Printf("socket %q closed", socket.Id)
152-
153-
socket.disconnect()
154-
}()
143+
defer socket.disconnect()
155144

156145
socket.dispose = append(socket.dispose, func() {
157146
s.sockets.delete(socket.Id)
@@ -166,36 +155,29 @@ func (s *Io) ServeHTTP(w http.ResponseWriter, r *http.Request) {
166155
Upgrades: []string{"websocket"},
167156
}.ToJson())
168157

169-
log.Printf("headers %q: %+v", socket.Id, socket.Conn.reqHeaders)
170-
log.Printf("query %q: %+v", socket.Id, socket.Conn.reqQuery)
171-
172158
for {
159+
173160
messageType, message, err := c.ReadMessage()
174161
if err != nil {
175-
log.Printf("got error: %v\n", err)
162+
log.Printf("[socket.io] input error: %v\n", err)
163+
176164
break
177165
}
178166

179167
if messageType == websocket.TextMessage {
180168
err := s.handlerMessage(&socket, string(message))
181169
if err != nil {
182-
log.Printf("got error: %v\n", err)
170+
log.Printf("[socket.io] message handling error: %v\n", err)
183171

184172
return
185173
}
186174
}
187175
}
188176
} else if strings.HasPrefix(r.URL.Path, s.path) {
189-
190-
log.Println("conection:path match")
191-
192177
clientDistFs, _ := fs.Sub(staticFS, "client-dist")
193178
fs := http.StripPrefix(s.path, http.FileServer(http.FS(clientDistFs)))
194179
fs.ServeHTTP(w, r)
195180
} else {
196-
197-
log.Printf("conection:not found: got [%q] want [%q]", r.URL.Path, s.path)
198-
199181
http.NotFound(w, r)
200182
}
201183
}
@@ -338,7 +320,7 @@ func (s *Io) new() func(ctx *fiber.Ctx) error {
338320

339321
socket := Socket{
340322
Id: s.randomUUID(),
341-
Nps: "/",
323+
Nsp: "/",
342324
Conn: &Conn{
343325
fasthttp: c,
344326
},
@@ -380,9 +362,14 @@ func (s *Io) new() func(ctx *fiber.Ctx) error {
380362
}
381363

382364
func (s *Io) handlerMessage(socket *Socket, message string) error {
365+
log.Printf("[socket.io] recv packet sid=%s ns=%s data=%s\n",
366+
socket.Id, socket.Nsp, message)
367+
383368
enginePacketType := string(message[0:1])
384369
switch enginePacketType {
385370
case engineio.MESSAGE.String():
371+
// log.Println("[socket.io] string message")
372+
386373
mess := string(message)
387374
packetType := string(message[1:2])
388375
rawpayload := string(message[2:])
@@ -401,11 +388,9 @@ func (s *Io) handlerMessage(socket *Socket, message string) error {
401388
for {
402389
nextSpecial3 := strings.Index(string(nextMess), ",")
403390
if nextSpecial3 == -1 || (special1 != -1 && (tot+nextSpecial3) > special1) || (special2 != -1 && (tot+nextSpecial3) > special2) {
404-
log.Printf("break reason: next: %d spe1: %d spe2: %d", nextSpecial3, special1, special2)
405391
break
406392
}
407393
nextMess = nextMess[nextSpecial3+1:]
408-
log.Print("msg: " + nextMess)
409394
special3 = nextSpecial3
410395
tot += nextSpecial3
411396
}
@@ -438,6 +423,8 @@ func (s *Io) handlerMessage(socket *Socket, message string) error {
438423

439424
switch packetType {
440425
case socket_protocol.DISCONNECT.String():
426+
// log.Println("[socket.io] disconnect message")
427+
441428
socket_nps, err := s.Of(namespace).sockets.get(socket.Id)
442429
if err != nil {
443430
return err
@@ -452,11 +439,13 @@ func (s *Io) handlerMessage(socket *Socket, message string) error {
452439
})
453440
}
454441
case socket_protocol.CONNECT.String():
442+
// log.Println("[socket.io] connect message")
443+
455444
socket_nps := socket
456445
if namespace != "/" {
457446
socketWithNamespace := Socket{
458447
Id: socket.Id,
459-
Nps: namespace,
448+
Nsp: namespace,
460449
Conn: socket.Conn,
461450
listeners: listeners{
462451
list: make(map[string][]eventCallback),
@@ -475,6 +464,8 @@ func (s *Io) handlerMessage(socket *Socket, message string) error {
475464
}
476465

477466
if s.onAuthentication != nil {
467+
// log.Printf("[socket.io] connect with auth")
468+
478469
dataJson := map[string]string{}
479470
json.Unmarshal([]byte(rawpayload), &dataJson)
480471
if !s.onAuthentication(dataJson) {
@@ -517,6 +508,7 @@ func (s *Io) handlerMessage(socket *Socket, message string) error {
517508
for _, callback := range s.Of(namespace).onConnection.get("connection") {
518509
callback(socket_nps)
519510
}
511+
520512
case socket_protocol.EVENT.String():
521513
socket_nps, err := s.Of(namespace).sockets.get(socket.Id)
522514
if err != nil {
@@ -545,7 +537,9 @@ func (s *Io) handlerMessage(socket *Socket, message string) error {
545537
// case socket_protocol.BINARY_ACK.String():
546538
}
547539
case engineio.PONG.String():
548-
// println("Client pong")
540+
// println("[socket.io] client pong")
541+
default:
542+
log.Println("[socket.io] un-handled message")
549543
}
550544
return nil
551545
}

socket.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package socketio
33
import (
44
"errors"
55
"io"
6+
"log"
67
"net/http"
78
"net/url"
89
"sync"
@@ -73,8 +74,9 @@ func (c *Conn) close() error {
7374

7475
type Socket struct {
7576
sync.RWMutex
77+
7678
Id string
77-
Nps string
79+
Nsp string
7880
Conn *Conn
7981
rooms roomNames
8082
listeners listeners
@@ -134,6 +136,8 @@ func (s *Socket) Rooms() []string {
134136
}
135137

136138
func (s *Socket) disconnect() {
139+
log.Printf("[socket.io] closing socket %q", s.Id)
140+
137141
s.Conn.close()
138142
s.Conn = nil
139143
// s.rooms = []string{}
@@ -163,9 +167,10 @@ func (s *Socket) writer(t socket_protocol.PacketType, arg ...interface{}) error
163167
return err
164168
}
165169
nps := ""
166-
if s.Nps != "/" {
167-
nps = s.Nps + ","
170+
if s.Nsp != "/" {
171+
nps = s.Nsp + ","
168172
}
173+
169174
if t == socket_protocol.ACK {
170175
agrs := append([]interface{}{}, arg[0].([]interface{})[1:])
171176
socket_protocol.WriteToWithAck(w, t, nps, arg[0].([]interface{})[0].(string), agrs...)

0 commit comments

Comments
 (0)