我有一个使用通道API的应用程序。连接应该始终处于活动状态(24x7),并且我已经以这样一种方式实现了连接,即每次通道断开连接时,都会自动创建一个新通道。这在大多数情况下都能正常工作,但我有一些情况,其中onError()方法不会被调用(例如,连接的WIFI更改,或者计算机将进入休眠状态并返回)。而我的JS应用程序错误地假设,如果频道不是这样,频道仍然存在。GAE Channel API - 检查套接字是否存在于Javascript中
我想到的一个解决方案是ping服务器,要求发送消息。就像Keep Alive一样。但这对于服务器来说是一个很大的负担。 (例如,每10秒发送ping请求的1000个客户端就像每秒100个请求一样)
所以我想知道是否有办法检查连接是否在本地活动,这样我就不会无意中在服务器上执行DoS连接。
感谢
但是,通过从服务器发送请求,您如何确定连接是否存活? Channel API不提供任何反馈,无论消息是否成功传递。我可能会发送到一个死信道,但错误地认为它仍然存在。我可以让客户回复。但是,我们再次回到同一问题 – budsiya 2013-02-22 19:04:00
期待频道活着。因此,客户应该定期进行ping。如果您没有收到任何超时期限的频道消息,请在JS中放置一个定时事件。如果频道死了,客户端应该请求一个新频道。 – dragonx 2013-02-22 23:00:29
使sesnse。感谢您的建议。 :) – budsiya 2013-02-23 14:30:54