Websocket bad handsake
hiperjava
TRIALOP
a year ago
I am running a Go service via Docker locally, and the WebSocket connection works fine. However, when I deploy it to the cloud, I get a "bad handshake" error using the same method.
I use this:
https://bybit-exchange.github.io/docs/v5/ws/connect
ⓘ Deployment information is only viewable by project members and Railway employees.
3 Replies
hiperjava
TRIALOP
a year ago
// Connect establishes a WebSocket connection.
func (client *BybitWebSocketClient) Connect() error {
logrus.Info("Attempting to connect to WebSocket server...")
conn, resp, err := websocket.DefaultDialer.Dial(client.url, nil)
if err != nil {
if resp != nil {
logrus.WithFields(logrus.Fields{
"status": resp.StatusCode,
"headers": resp.Header,
"body": resp.Body,
}).Error("Failed to connect to WebSocket server")
} else {
logrus.WithError(err).Error("Failed to connect to WebSocket server")
}
return fmt.Errorf("failed to connect: %w", err)
}
websocket.DefaultDialer.TLSClientConfig = &tls.Config{
InsecureSkipVerify: true,
}
client.conn = conn
logrus.Info(" Successfully connected to WebSocket server")
return nil
}wsclient := ws.NewWebSocketClient(cfg.BYBITWSURL)
if err := wsclient.Connect(); err != nil {
logrus.Fatalf("Failed to connect: %v", err)
}
defer func(wsclient *ws.BybitWebSocketClient) {
err := wsclient.Close()
if err != nil {
logrus.Fatalf("Failed to close: %v", err)
}
}(wsclient)Executing: /go/bin/trade wsclient
Init logging
Starting a ws client listener
Attempting to connect to WebSocket server...
Failed to connect: failed to connect: websocket: bad handshake
a year ago
Make sure you're using wss instead of ws when the websocket server is running on Railway
Status changed to Solved dev • over 1 year ago