* Add plugin websocket hooks

* Improve sending message mechanism and filter out of the router plugin specific messages

* Return and manage error if the request clone fails

* Wording change to avoid repetition

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
Miguel de la Cruz
2021-08-24 10:11:31 +02:00
коммит произвёл GitHub
родитель b66fd1f89e
Коммит 0ae681464e
5 изменённых файлов: 242 добавлений и 23 удалений

Просмотреть файл

@@ -15,28 +15,31 @@ import (
// Feel free to add more, but do not change existing assignments. Follow the naming convention of
// <HookName>ID as the autogenerated glue code depends on that.
const (
OnActivateID = 0
OnDeactivateID = 1
ServeHTTPID = 2
OnConfigurationChangeID = 3
ExecuteCommandID = 4
MessageWillBePostedID = 5
MessageWillBeUpdatedID = 6
MessageHasBeenPostedID = 7
MessageHasBeenUpdatedID = 8
UserHasJoinedChannelID = 9
UserHasLeftChannelID = 10
UserHasJoinedTeamID = 11
UserHasLeftTeamID = 12
ChannelHasBeenCreatedID = 13
FileWillBeUploadedID = 14
UserWillLogInID = 15
UserHasLoggedInID = 16
UserHasBeenCreatedID = 17
ReactionHasBeenAddedID = 18
ReactionHasBeenRemovedID = 19
OnPluginClusterEventID = 20
TotalHooksID = iota
OnActivateID = 0
OnDeactivateID = 1
ServeHTTPID = 2
OnConfigurationChangeID = 3
ExecuteCommandID = 4
MessageWillBePostedID = 5
MessageWillBeUpdatedID = 6
MessageHasBeenPostedID = 7
MessageHasBeenUpdatedID = 8
UserHasJoinedChannelID = 9
UserHasLeftChannelID = 10
UserHasJoinedTeamID = 11
UserHasLeftTeamID = 12
ChannelHasBeenCreatedID = 13
FileWillBeUploadedID = 14
UserWillLogInID = 15
UserHasLoggedInID = 16
UserHasBeenCreatedID = 17
ReactionHasBeenAddedID = 18
ReactionHasBeenRemovedID = 19
OnPluginClusterEventID = 20
OnWebSocketConnectID = 21
OnWebSocketDisconnectID = 22
WebSocketMessageHasBeenPostedID = 23
TotalHooksID = iota
)
const (
@@ -219,4 +222,25 @@ type Hooks interface {
//
// Minimum server version: 5.36
OnPluginClusterEvent(c *Context, ev model.PluginClusterEvent)
// OnWebSocketConnect is invoked when a new websocket connection is opened.
//
// This is used to track which users have connections opened with the Mattermost
// websocket.
//
// Minimum server version: 6.0
OnWebSocketConnect(webConnID, userID string)
// OnWebSocketDisconnect is invoked when a websocket connection is closed.
//
// This is used to track which users have connections opened with the Mattermost
// websocket.
//
// Minimum server version: 6.0
OnWebSocketDisconnect(webConnID, userID string)
// WebSocketMessageHasBeenPosted is invoked when a websocket message is received.
//
// Minimum server version: 6.0
WebSocketMessageHasBeenPosted(webConnID, userID string, req *model.WebSocketRequest)
}