如何用WebsocketSharp向Binance发送Pong消息维持连接?
解决Binance WebSocket数据流断开问题:使用WebsocketSharp正确发送Pong帧
你的问题出在收到Ping帧时回发了Ping的原始数据,而Binance服务器需要的是Pong帧响应。WebsocketSharp库已经封装了专门的Pong发送方法,不需要手动处理原始数据,修改代码如下:
private void OnMessage(object sender, MessageEventArgs e) { if (e.IsPing) { // 调用WebsocketSharp内置的SendPong方法发送Pong帧 _websocket.SendPong(e.RawData); // 若不需要携带Ping的payload,也可以直接调用无参重载:_websocket.SendPong(); } else { // 处理业务消息 } }
关键说明:
- WebsocketSharp的
SendPong方法会自动按照WebSocket协议格式构造Pong帧,服务器能正确识别为有效响应,避免因超时断开连接。 - 如果你需要主动发送Pong帧(比如担心网络延迟导致未及时响应Ping),可以定时调用
_websocket.SendPong(),无需额外参数,Binance服务器会接受这种主动发送的Pong帧。
内容的提问来源于stack exchange,提问作者Sujin Pyo
相关产品推荐
相关产品推荐

