perf(group): reduce websocket fanout serialization
This commit is contained in:
@@ -105,7 +105,9 @@ func (sess *Session) readLoop() {
|
||||
atomic.StoreInt64(&sess.lastAction, types.TimeNow().UnixNano())
|
||||
_ = sess.ws.SetReadDeadline(time.Now().Add(pongWait))
|
||||
statsInc("IncomingMessagesWebsockTotal", 1)
|
||||
dispatchStarted := time.Now()
|
||||
sess.dispatchRaw(raw)
|
||||
immetrics.ObserveWSReadDispatch(dispatchStarted)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,6 +162,11 @@ func (sess *Session) writeLoop() {
|
||||
if isAcceptedCtrl(v) {
|
||||
immetrics.ObserveCtrlACKDelivery("write", v.Timestamp)
|
||||
}
|
||||
case sharedServerMessage:
|
||||
statsAddHistSample("OutgoingMessageSize", float64(len(v)))
|
||||
if !sess.sendMessage([]byte(v)) {
|
||||
return
|
||||
}
|
||||
default: // serialized message
|
||||
if !sess.sendMessage(v) {
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user