diff options
-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: { |