diff options
author | Joram Wilander <jwawilander@gmail.com> | 2016-09-04 19:45:35 -0400 |
---|---|---|
committer | enahum <nahumhbl@gmail.com> | 2016-09-04 20:45:34 -0300 |
commit | 9d11dd437faf294a735f52f35e90779353f35293 (patch) | |
tree | b9503961a30b4a100a32b8c0645748676eea337e | |
parent | 6c085594e47eeabbe5084a0e5c231af3e18527b6 (diff) | |
download | chat-9d11dd437faf294a735f52f35e90779353f35293.tar.gz chat-9d11dd437faf294a735f52f35e90779353f35293.tar.bz2 chat-9d11dd437faf294a735f52f35e90779353f35293.zip |
Send hello event containing server version on WebSocket connect (#3936)
-rw-r--r-- | api/web_hub.go | 5 | ||||
-rw-r--r-- | model/websocket_message.go | 1 | ||||
-rw-r--r-- | webapp/actions/websocket_actions.jsx | 9 | ||||
-rw-r--r-- | webapp/utils/constants.jsx | 3 |
4 files changed, 17 insertions, 1 deletions
diff --git a/api/web_hub.go b/api/web_hub.go index 89f9891f8..c4abc5a7a 100644 --- a/api/web_hub.go +++ b/api/web_hub.go @@ -4,6 +4,7 @@ package api import ( + "fmt" l4g "github.com/alecthomas/log4go" "github.com/mattermost/platform/einterfaces" @@ -61,6 +62,10 @@ func InvalidateCacheForChannel(channelId string) { func (h *Hub) Register(webConn *WebConn) { h.register <- webConn + + msg := model.NewWebSocketEvent("", "", webConn.UserId, model.WEBSOCKET_EVENT_HELLO) + msg.Add("server_version", fmt.Sprintf("%v.%v", model.CurrentVersion, utils.CfgHash)) + go Publish(msg) } func (h *Hub) Unregister(webConn *WebConn) { diff --git a/model/websocket_message.go b/model/websocket_message.go index 0ad455997..18e070afd 100644 --- a/model/websocket_message.go +++ b/model/websocket_message.go @@ -24,6 +24,7 @@ const ( WEBSOCKET_EVENT_PREFERENCE_CHANGED = "preference_changed" WEBSOCKET_EVENT_EPHEMERAL_MESSAGE = "ephemeral_message" WEBSOCKET_EVENT_STATUS_CHANGE = "status_change" + WEBSOCKET_EVENT_HELLO = "hello" ) type WebSocketMessage interface { diff --git a/webapp/actions/websocket_actions.jsx b/webapp/actions/websocket_actions.jsx index 28faf4733..68853c229 100644 --- a/webapp/actions/websocket_actions.jsx +++ b/webapp/actions/websocket_actions.jsx @@ -156,6 +156,10 @@ function handleEvent(msg) { handleStatusChangedEvent(msg); break; + case SocketEvents.HELLO: + handleHelloEvent(msg); + break; + default: } } @@ -284,3 +288,8 @@ function handleUserTypingEvent(msg) { function handleStatusChangedEvent(msg) { UserStore.setStatus(msg.user_id, msg.data.status); } + +function handleHelloEvent(msg) { + Client.serverVersion = msg.data.server_version; + AsyncClient.checkVersion(); +} diff --git a/webapp/utils/constants.jsx b/webapp/utils/constants.jsx index 1ec20d3e8..b4eb1d11a 100644 --- a/webapp/utils/constants.jsx +++ b/webapp/utils/constants.jsx @@ -198,7 +198,8 @@ export const Constants = { TYPING: 'typing', PREFERENCE_CHANGED: 'preference_changed', EPHEMERAL_MESSAGE: 'ephemeral_message', - STATUS_CHANGED: 'status_change' + STATUS_CHANGED: 'status_change', + HELLO: 'hello' }, UserUpdateEvents: { |