使用 WebSockets 维护连接

Maintaining Connection using WebSockets

我有一个 JavaScript/html 网络套接字客户端。它经常从我的服务器接收图像。我在 C# 控制台应用程序中托管我的网络套接字服务器。

我的客户等待图像的最长时间是 10 秒。

我是否也应该从我的客户端 (JavaScript) 向我的服务器发送 'keep-alive' 数据包,或者它从我的服务器接收常规数据包是否足够?

谢谢

您可以从服务器发送 ping 消息,客户端将回复 pong 消息。它是 WebSocket 协议的一部分,不确定您的服务器实现是否支持它。但是,从客户端您无法知道您是否在一段时间内收到了 ping 消息,因此客户端可能会挂在那里。

或者您可以使用自己的消息在应用程序级别执行此操作。基本上在 JSON 中创建一个 "ping" 消息并定期从客户端发送到服务器,然后如果在 X 时间内没有收到响应,请重新连接。

如果不这样做,唯一的问题是连接可能 half-open,您的客户端可能会挂在那里等待永远不会出现的图像。

干杯。