From 85cefd98a1f4b10551f3f3857034bf65c6eab6f2 Mon Sep 17 00:00:00 2001 From: haykam821 <24855774+haykam821@users.noreply.github.com> Date: Fri, 26 Jun 2020 05:45:43 -0400 Subject: [PATCH] Allow sending messages through the websocket --- bridge/api/api.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/bridge/api/api.go b/bridge/api/api.go index 86da516d..433bca16 100644 --- a/bridge/api/api.go +++ b/bridge/api/api.go @@ -131,6 +131,17 @@ func (b *API) handleStream(c echo.Context) error { } } +func (b *API) handleWebsocketMessage(message config.Message) { + message.Channel = "api" + message.Protocol = "api" + message.Account = b.Account + message.ID = "" + message.Timestamp = time.Now() + + b.Log.Debugf("Sending websocket message from %s on %s to gateway", message.Username, "api") + b.Remote <- message +} + func (b *API) handleWebsocket(c echo.Context) error { conn, err := websocket.Upgrade(c.Response().Writer, c.Request(), nil, 1024, 1024) if err != nil { @@ -148,6 +159,11 @@ func (b *API) handleWebsocket(c echo.Context) error { if msg != nil { conn.WriteJSON(msg) } - time.Sleep(200 * time.Millisecond) + + message := config.Message{} + err := conn.ReadJSON(&message) + if err == nil { + b.handleWebsocketMessage(message) + } } }