如何使用 MessageWebSocket 发送 ping 以保持与服务器的连接

Posted

技术标签:

【中文标题】如何使用 MessageWebSocket 发送 ping 以保持与服务器的连接【英文标题】:How do I send a ping to keep connection to server alive using MessageWebSocket 【发布时间】:2020-08-01 19:30:50 【问题描述】:

我正在使用 c# UWP 和 MessageWebSocket。在我的应用中,我需要每 10 分钟向服务器发送一次 ping 以保持 webSocket 连接处于活动状态。

但是我真的在 MessageWebSocket 上找不到任何方法来发送 ping,而且 google 在这里也帮不上什么忙。

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

源自官方document,MessageWebSocketControl 包含DesiredUnsolicitedPongInterval,用于允许应用获取和设置所需的主动WebSocket PONG 间隔。如果您只想保持 webSocket 连接处于活动状态,请查看此document

有关详细信息,请参阅 ControlChannelTrigger 备注。在实现应用级 PONG 时,可以通过 ControlChannelTrigger 的 ServerKeepAliveIntervalInMinutes 属性配置服务器保持活动间隔。

更新

MessageWebSocket 不包含向用于保持连接活动的服务器发送 ping。但是您可以将 WebSocketKeepAlive 类与 ControlChannelTrigger 类和相关接口结合使用,以启用实时网络状态以及 UWP BackgroundTask 中的 StreamWebSocket 和 MessageWebSocket 类的触发器。

【讨论】:

非常感谢您的回复,恐怕这让我更加困惑,我正在处理客户端部分,客户端需要向服务器发送 ping 以保持 websocket 处于活动状态,据我了解,服务器将以乒乓球响应。因此,您提到的功能定义了 PONG 间隔,而不是 PING 间隔。我希望你有时间为我澄清一下 我已经更新了回复,请查看更新部分,

以上是关于如何使用 MessageWebSocket 发送 ping 以保持与服务器的连接的主要内容,如果未能解决你的问题,请参考以下文章

Windows Phone 8 中的 Websockets 客户端支持

如何使用 FormData 发送文件数组?

如何使用 IOCP 发送文件?

如何使用 IMAP 发送邮件?

如何使用 directInput 发送释放键? [关闭]

如何在使用 AFHTTPSessionManager 发送 POST 请求时向参数发送空白数据