Skip to content

Commit c647c91

Browse files
authored
feat: add '&debug_reconnects=true' to websocket url (#1393)
According to the documentation at https://api.slack.com/apis/socket-mode you can append &debug_reconnects=true to your WebSocket URL when you connect to it in order to make the connection time significantly shorter (360 seconds). That way, you can test and debug reconnects without waiting around. We're adding this whenever debug mode is enabled in the socketmode client. Closes #1379.
2 parents 156c2e6 + 147d3f5 commit c647c91

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

examples/socketmode/socketmode.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ func main() {
141141
}
142142

143143
client.Ack(*evt.Request, payload)
144+
case socketmode.EventTypeHello:
145+
client.Debugf("Hello received!")
144146
default:
145147
fmt.Fprintf(os.Stderr, "Unexpected event type received: %s\n", evt.Type)
146148
}

examples/socketmode_handler/socketmode_handler.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ func main() {
4949
socketmodeHandler.Handle(socketmode.EventTypeConnecting, middlewareConnecting)
5050
socketmodeHandler.Handle(socketmode.EventTypeConnectionError, middlewareConnectionError)
5151
socketmodeHandler.Handle(socketmode.EventTypeConnected, middlewareConnected)
52+
socketmodeHandler.Handle(socketmode.EventTypeHello, middlewareHello)
5253

5354
//\\ EventTypeEventsAPI //\\
5455
// Handle all EventsAPI
@@ -85,6 +86,10 @@ func middlewareConnected(evt *socketmode.Event, client *socketmode.Client) {
8586
fmt.Println("Connected to Slack with Socket Mode.")
8687
}
8788

89+
func middlewareHello(evt *socketmode.Event, client *socketmode.Client) {
90+
fmt.Println("Received a hello message. Howdy to you too.")
91+
}
92+
8893
func middlewareEventsAPI(evt *socketmode.Event, client *socketmode.Client) {
8994
fmt.Println("middlewareEventsAPI")
9095
eventsAPIEvent, ok := evt.Data.(slackevents.EventsAPIEvent)

socket_mode.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,11 @@ func (api *Client) StartSocketModeContext(ctx context.Context) (info *SocketMode
3030
api.Debugln("Using URL:", response.SocketModeConnection.URL)
3131
}
3232

33+
// According to the API documentation at https://api.slack.com/apis/socket-mode, we
34+
// can add a query parameter `debug_reconnects=true` to the URL to make the connection
35+
// time significantly shorter (360 seconds).
36+
if api.debug {
37+
response.SocketModeConnection.URL += "&debug_reconnects=true"
38+
}
3339
return &response.SocketModeConnection, response.SocketModeConnection.URL, response.Err()
3440
}

0 commit comments

Comments
 (0)