MCPcopy Create free account
hub / github.com/daodst/chat / readLoop

Method readLoop

server/wshandler.go:54–83  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

52)
53
54func (sess *Session) readLoop() {
55 defer func() {
56 log.Println("serveWebsocket - stop")
57 sess.closeWS()
58 globals.sessionStore.Delete(sess.sid)
59 for _, sub := range sess.subs {
60 // sub.done is the same as topic.unreg
61 sub.done <- &sessionLeave{sess: sess, unsub: false}
62 }
63 sess.stop <- true
64 }()
65
66 sess.ws.SetReadLimit(maxMessageSize)
67 sess.ws.SetReadDeadline(time.Now().Add(pongWait))
68 sess.ws.SetPongHandler(func(string) error {
69 sess.ws.SetReadDeadline(time.Now().Add(pongWait))
70 return nil
71 })
72 sess.remoteAddr = sess.ws.RemoteAddr().String()
73
74 for {
75 // Read a ClientComMessage
76 if _, raw, err := sess.ws.ReadMessage(); err != nil {
77 log.Println("sess.readLoop: " + err.Error())
78 return
79 } else {
80 sess.dispatch(raw)
81 }
82 }
83}
84
85func (sess *Session) writeLoop() {
86 ticker := time.NewTicker(pingPeriod)

Callers 1

serveWebSocketFunction · 0.80

Calls 8

closeWSMethod · 0.95
dispatchMethod · 0.95
SetReadDeadlineMethod · 0.80
AddMethod · 0.80
RemoteAddrMethod · 0.80
DeleteMethod · 0.45
StringMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected