System.Net.WebSockets 客户端失连 服务端要很久才能自动disconnect
DefaultKeepAliveInterval 默认是30秒。 有什么可以设置这个时间。
https://github.com/websockets/ws/issues/353
比较挫的是 websocket 是host在iis上的
除了心跳别无他法
在最终结局方案 是 双向心跳。
你是想让他快点失连?
这版没做心跳。 等30秒太长了。
client 失去网络。 服务端希望第一时间 知道。 现阶段没法做心跳。
@YZYAO: 客户端失去网络,服务器知道这个干嘛???
@顾晓北: 要做一系列的处理。 connection跟user绑定的 要解绑 各种
@YZYAO: 感觉这应该是思路错了。。。
举个例子,假如说,有一个缓存,很长时间没有命中了,难道你还用心跳去检测缓存失效没失效吗?
另外,也不知道你所说的这个“绑定”是怎么一个绑定法儿。。。
这给我的感觉就是思路错了,导致走入死胡同了。。。
@顾晓北: 没错啦。 用户 connection 连接成功 会 跟 角色绑定。 其他用户就不能跟此角色绑定了。
当用户 断开 失去网络 或者 飞行模式的时候 服务端 不能第一时间 收到断开消息。 只能心跳来判别。
现在心跳 是单方面 服务端 发给客户端的 最终解决方案是 客户端 也发心跳给服务端。
现阶段。 我在看 如果断开 服务端 发给客户端的心跳包。 会不会失败。 这里做文章了。
多谢大神 有时间 来关注 :)