diff options
| author | Xe Iaso <me@xeiaso.net> | 2023-06-13 20:14:27 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2023-06-13 20:14:27 -0400 |
| commit | 11069a6b848197d0d3d7ba527e9bf4ecd9037380 (patch) | |
| tree | 5ab7f0893d4f72a64e21dac96909502fd0550bdb /web | |
| parent | 5076191b74097cf17452b0dd9773d759002380db (diff) | |
| download | x-11069a6b848197d0d3d7ba527e9bf4ecd9037380.tar.xz x-11069a6b848197d0d3d7ba527e9bf4ecd9037380.zip | |
web/revolt: start the process of writing a reconnection loop
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'web')
| -rw-r--r-- | web/revolt/client.go | 6 | ||||
| -rw-r--r-- | web/revolt/websocket.go | 9 |
2 files changed, 13 insertions, 2 deletions
diff --git a/web/revolt/client.go b/web/revolt/client.go index 353377b..76fe65c 100644 --- a/web/revolt/client.go +++ b/web/revolt/client.go @@ -5,6 +5,8 @@ import ( "encoding/json" "fmt" "net/http" + "sync" + "time" "github.com/sacOO7/gowebsocket" ) @@ -43,6 +45,10 @@ type Client struct { OnServerMemberUpdateFunctions []func(ctx context.Context, serverID, clear string, payload map[string]interface{}) OnServerMemberJoinFunctions []func(ctx context.Context, serverID, userID string) OnServerMemberLeaveFunctions []func(ctx context.Context, serverID, userID string) + + // ping timer + pingMutex sync.Mutex + lastPing time.Time } // Self bot struct. diff --git a/web/revolt/websocket.go b/web/revolt/websocket.go index c534d45..8ca78a9 100644 --- a/web/revolt/websocket.go +++ b/web/revolt/websocket.go @@ -4,7 +4,6 @@ import ( "context" "encoding/json" "fmt" - "log" "net/http" "time" @@ -51,6 +50,12 @@ func (c *Client) Start(ctx context.Context) { // fmt.Println(message) } + c.Socket.OnDisconnected = func (err error, sock gowebsocket.Socket) { + ctx := opname.With(ctx, "websocket-ondisconnect") + ln.Error(ctx, err) + sock.Conn.Close() + } + // Start connection. c.Socket.Connect() @@ -329,7 +334,7 @@ func (c *Client) handleEvents(ctx context.Context, rawData *struct { i(ctx, data.ID, data.User) } default: - log.Printf("unknown event %s", rawData.Type) + ln.Log(ctx, ln.F{"unknown_event": rawData.Type}) // Unknown event. if c.OnUnknownEventFunctions != nil { for _, i := range c.OnUnknownEventFunctions { |
