summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/web_conn.go15
-rw-r--r--app/web_hub.go2
-rw-r--r--app/websocket_router.go2
3 files changed, 13 insertions, 6 deletions
diff --git a/app/web_conn.go b/app/web_conn.go
index da6330f5c..11290b67d 100644
--- a/app/web_conn.go
+++ b/app/web_conn.go
@@ -35,6 +35,7 @@ type WebConn struct {
Locale string
AllChannelMembers map[string]string
LastAllChannelMembersTime int64
+ Sequence int64
}
func NewWebConn(ws *websocket.Conn, session model.Session, t goi18n.TranslateFunc, locale string) *WebConn {
@@ -104,8 +105,19 @@ func (c *WebConn) WritePump() {
return
}
+ var msgBytes []byte
+ if evt, ok := msg.(*model.WebSocketEvent); ok {
+ cpyEvt := &model.WebSocketEvent{}
+ *cpyEvt = *evt
+ cpyEvt.Sequence = c.Sequence
+ msgBytes = []byte(cpyEvt.ToJson())
+ c.Sequence++
+ } else {
+ msgBytes = []byte(msg.ToJson())
+ }
+
c.WebSocket.SetWriteDeadline(time.Now().Add(WRITE_WAIT))
- if err := c.WebSocket.WriteMessage(websocket.TextMessage, msg.GetPreComputeJson()); err != nil {
+ if err := c.WebSocket.WriteMessage(websocket.TextMessage, msgBytes); err != nil {
// browsers will appear as CloseNoStatusReceived
if websocket.IsCloseError(err, websocket.CloseNormalClosure, websocket.CloseNoStatusReceived) {
l4g.Debug(fmt.Sprintf("websocket.send: client side closed socket userId=%v", c.UserId))
@@ -179,7 +191,6 @@ func (webCon *WebConn) IsAuthenticated() bool {
func (webCon *WebConn) SendHello() {
msg := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_HELLO, "", "", webCon.UserId, nil)
msg.Add("server_version", fmt.Sprintf("%v.%v.%v.%v", model.CurrentVersion, model.BuildNumber, utils.CfgHash, utils.IsLicensed))
- msg.DoPreComputeJson()
webCon.Send <- msg
}
diff --git a/app/web_hub.go b/app/web_hub.go
index 65d18481f..a0663459a 100644
--- a/app/web_hub.go
+++ b/app/web_hub.go
@@ -94,7 +94,6 @@ func Publish(message *model.WebSocketEvent) {
metrics.IncrementWebsocketEvent(message.Event)
}
- message.DoPreComputeJson()
for _, hub := range hubs {
hub.Broadcast(message)
}
@@ -105,7 +104,6 @@ func Publish(message *model.WebSocketEvent) {
}
func PublishSkipClusterSend(message *model.WebSocketEvent) {
- message.DoPreComputeJson()
for _, hub := range hubs {
hub.Broadcast(message)
}
diff --git a/app/websocket_router.go b/app/websocket_router.go
index 30714a447..4569134b0 100644
--- a/app/websocket_router.go
+++ b/app/websocket_router.go
@@ -61,7 +61,6 @@ func (wr *WebSocketRouter) ServeWebSocket(conn *WebConn, r *model.WebSocketReque
HubRegister(conn)
resp := model.NewWebSocketResponse(model.STATUS_OK, r.Seq, nil)
- resp.DoPreComputeJson()
conn.Send <- resp
}
@@ -91,7 +90,6 @@ func ReturnWebSocketError(conn *WebConn, r *model.WebSocketRequest, err *model.A
err.DetailedError = ""
errorResp := model.NewWebSocketError(r.Seq, err)
- errorResp.DoPreComputeJson()
conn.Send <- errorResp
}