MM-9674 Add plugin API for publishing custom WebSocket events (#8999)

* Add plugin API for publishing custom WebSocket events

* Add clearer payload comment

* Update comment
Этот коммит содержится в:
Joram Wilander
2018-06-27 08:46:38 -04:00
коммит произвёл GitHub
родитель 1e5c432e10
Коммит d7976549a0
5 изменённых файлов: 49 добавлений и 2 удалений

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

@@ -1101,3 +1101,30 @@ func (s *APIRPCServer) KVDelete(args *KVDeleteArgs, returns *KVDeleteReturns) er
}
return nil
}
type PublishWebSocketEventArgs struct {
A string
B map[string]interface{}
C *model.WebsocketBroadcast
}
type PublishWebSocketEventReturns struct {
}
func (g *APIRPCClient) PublishWebSocketEvent(event string, payload map[string]interface{}, broadcast *model.WebsocketBroadcast) {
_args := &PublishWebSocketEventArgs{event, payload, broadcast}
_returns := &PublishWebSocketEventReturns{}
if err := g.client.Call("Plugin.PublishWebSocketEvent", _args, _returns); err != nil {
g.log.Error("RPC call to PublishWebSocketEvent API failed.", mlog.Err(err))
}
return
}
func (s *APIRPCServer) PublishWebSocketEvent(args *PublishWebSocketEventArgs, returns *PublishWebSocketEventReturns) error {
if hook, ok := s.impl.(interface {
PublishWebSocketEvent(event string, payload map[string]interface{}, broadcast *model.WebsocketBroadcast)
}); ok {
hook.PublishWebSocketEvent(args.A, args.B, args.C)
}
return nil
}