asp.net - IIS WebSocket Ping pong 在不空闲时发送

标签 asp.net iis websocket

背景: 我正在努力学习使用 ASP.Net 的 websocket。我有一个应用程序,其中使用心跳来确保客户端仍然连接。在我的应用程序中,我会每隔几秒发送一次心跳。在阅读过程中,我发现我可以使用乒乓球来实现类似的目标。因此,经过一番调查后,我发现我可以将 ping 配置为 IIS 的一部分。在我的测试过程中,我注意到只有当连接空闲时才会发送 ping,而不是像我的心跳一样每隔几秒发送一次。

问题: 有没有办法让 IIS 每隔几秒发送一次,而不是仅在连接空闲时发送一次?或者我唯一的选择是实现自定义 ping/pong 逻辑?

最佳答案

不,没有办法改变这一点。配置限制为https://www.iis.net/configreference/system.webserver/websocket

原因是,当确定连接不空闲时发送 PING 帧是没有用的,因为 System.Net.WebSockets API 无论如何都不允许您访问 PING/PONG。我认为这是错误的,因为您也应该能够使用 PING 来计算连接延迟(因为 PONG 将回显 PING 发送的任何内容,您可以使用时间戳),但事实就是如此。

所以,是的,在应用程序级别实现您自己的 PING/PONG 是您唯一的选择。

关于asp.net - IIS WebSocket Ping pong 在不空闲时发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42838176/

相关文章:

c# - ASP.NET 网络 API : Optional Guid parameters

asp.net - 获取 Controller 中隐藏字段的值 (ASP.NET MVC)

asp.net - 什么是请求处理管道?

amazon-web-services - AWS EC2 实例 WebSocket 连接失败的问题:连接建立错误:net::ERR_CONNECTION_TIMED_OUT

node.js - 将主要的 socket.io 升级(1.4.5 到 2.0)部署到生产环境的建议方法

asp.net - 在本地主机上找到存储过程,但发布时找不到

asp.net - 如何知道我的网站访问的IIS服务器IP

php - 使用 PEAR MDB2 从 IIS 上的 PHP 连接到 MS SQL

python - ws4py在Linux系统中出现错误

c# - DataTable 修改日期格式 - 为什么?