Websocket bad handsake

hiperjava
TRIAL

7 months 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

View Deploy details

ⓘ Deployment information is only viewable by project members and Railway employees.

Solved

3 Replies

hiperjava
TRIAL

7 months 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



7 months ago

Make sure you're using wss instead of ws when the websocket server is running on Railway


Status changed to Solved dev 7 months ago