From f874c3dce35a1edcdcf471eb3edb6284423b251b Mon Sep 17 00:00:00 2001 From: Doug Lauder Date: Thu, 19 May 2022 15:59:04 -0400 Subject: [PATCH] don't redundantly send config chg messages to cluster nodes (#3090) Co-authored-by: Mattermod --- server/ws/plugin_adapter.go | 16 ++++------------ server/ws/plugin_adapter_cluster.go | 2 +- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/server/ws/plugin_adapter.go b/server/ws/plugin_adapter.go index 6bd8c7743..74a25d033 100644 --- a/server/ws/plugin_adapter.go +++ b/server/ws/plugin_adapter.go @@ -381,22 +381,14 @@ func (pa *PluginAdapter) WebSocketMessageHasBeenPosted(webConnID, userID string, } } -func (pa *PluginAdapter) sendMessageToAllSkipCluster(payload map[string]interface{}) { +// sendMessageToAll will send a websocket message to all clients on all nodes. +func (pa *PluginAdapter) sendMessageToAll(event string, payload map[string]interface{}) { // Empty &mmModel.WebsocketBroadcast will send to all users - pa.api.PublishWebSocketEvent(websocketActionUpdateConfig, payload, &mmModel.WebsocketBroadcast{}) -} - -func (pa *PluginAdapter) sendMessageToAll(payload map[string]interface{}) { - go func() { - clusterMessage := &ClusterMessage{Payload: payload} - pa.sendMessageToCluster("websocket_message", clusterMessage) - }() - - pa.sendMessageToAllSkipCluster(payload) + pa.api.PublishWebSocketEvent(event, payload, &mmModel.WebsocketBroadcast{}) } func (pa *PluginAdapter) BroadcastConfigChange(pluginConfig model.ClientConfig) { - pa.sendMessageToAll(utils.StructToMap(pluginConfig)) + pa.sendMessageToAll(websocketActionUpdateConfig, utils.StructToMap(pluginConfig)) } // sendUserMessageSkipCluster sends the message to specific users. diff --git a/server/ws/plugin_adapter_cluster.go b/server/ws/plugin_adapter_cluster.go index cdca38e0e..0293c415a 100644 --- a/server/ws/plugin_adapter_cluster.go +++ b/server/ws/plugin_adapter_cluster.go @@ -13,7 +13,6 @@ type ClusterMessage struct { EnsureUsers []string } -//nolint:unparam // the `id` param is to key this function generic and handle more than just websocket messages func (pa *PluginAdapter) sendMessageToCluster(id string, clusterMessage *ClusterMessage) { b, err := json.Marshal(clusterMessage) if err != nil { @@ -66,6 +65,7 @@ func (pa *PluginAdapter) HandleClusterEvent(ev mmModel.PluginClusterEvent) { "id", ev.Id, "payload", clusterMessage.Payload, ) + return } pa.sendTeamMessageSkipCluster(websocketActionUpdateBlock, clusterMessage.TeamID, clusterMessage.Payload)