Skip to content

Commit 6b497f7

Browse files
committed
Simplify reconnect logic: single response type check
- Merge error and non-registered checks into one block - Recreate session only when relay explicitly returns error type
1 parent 129646b commit 6b497f7

1 file changed

Lines changed: 9 additions & 11 deletions

File tree

websocket.go

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,22 @@ func (d *Daemon) connectToRelay() {
2828
continue
2929
}
3030

31-
// If relay rejects (session expired/cleaned up), recreate session
32-
if response.Type == "error" {
31+
if response.Type != "registered" {
3332
conn.Close()
34-
for {
35-
if err := d.recreateSession(); err == nil {
36-
break
33+
// If session expired on relay, recreate
34+
if response.Type == "error" {
35+
for {
36+
if err := d.recreateSession(); err == nil {
37+
break
38+
}
39+
time.Sleep(RelayConnectDelay)
3740
}
41+
} else {
3842
time.Sleep(RelayConnectDelay)
3943
}
4044
continue
4145
}
4246

43-
if response.Type != "registered" {
44-
conn.Close()
45-
time.Sleep(RelayConnectDelay)
46-
continue
47-
}
48-
4947
// Set read deadline: if no message within 3 ping intervals, connection is dead
5048
conn.SetReadDeadline(time.Now().Add(PingInterval * 3))
5149

0 commit comments

Comments
 (0)