aboutsummaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2023-06-13 20:14:27 -0400
committerXe Iaso <me@xeiaso.net>2023-06-13 20:14:27 -0400
commit11069a6b848197d0d3d7ba527e9bf4ecd9037380 (patch)
tree5ab7f0893d4f72a64e21dac96909502fd0550bdb /web
parent5076191b74097cf17452b0dd9773d759002380db (diff)
downloadx-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.go6
-rw-r--r--web/revolt/websocket.go9
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 {