请原谅我在这里的任何无知或术语失败。我在一家软件公司工作,但从事支持,而不是开发。
我们开发了一个连接到 websocket 服务器以传递和接收消息的工具。为了接收消息,它会打开一个连接并接收消息(将它们传递给其他组件进行进一步处理(,直到服务器关闭连接。
使用简单的 Websocket 服务器,我对其进行了测试(ws://echo.websocket.org:80(,我使用我们的工具将消息 ping 到服务器并接收它。但是服务器没有关闭连接,我们的工具只是继续侦听,而我本以为它会停止。
我向我们的开发团队建议,我们可能希望为客户端添加一个设置,以便在收到 X 条消息或 Y 时间长度后关闭连接,但他们质疑这是否现实。
那么,Websocket 客户端是否应该能够关闭连接,从开发的角度来看,这是不好的做法吗?客户端甚至可以判断消息是否已完成吗?如果客户端可以关闭连接,哪种方案可能需要这样做?
那么,Websocket 客户端是否应该能够关闭连接
WebSocket
API 包含一个close
函数。这是为了让客户端可以关闭与服务器的连接。
从发展的角度来看,这是不好的做法吗?如果客户端可以关闭连接,哪种方案可能需要这样做?
这实际上取决于应用程序。但是 - 如上所述 - 它是WebSocket API的一部分,所以这样做是完全有效的。
客户端甚至可以判断消息是否已完成吗?
收到消息时调用WebSocket.onmessage
。是否已收到整个消息实际上取决于应用程序的角度。如果您的服务器一次性发送完整消息,则很可能会收到完整消息。您可以在 WebSocket 协议文档中找到确切的详细信息