GPLv3自由软件,alpha阶段,后来将与MELT相关,MELT是一种扩展GCC编译器的特定领域语言;它是一个用C编程的专用HTTP服务器[meta-],即它的C代码将越来越多地自我生成),使用libonion(HTTP服务器库)和jquery.websocket,我想只对从我的专用Web服务器(MELT监视器)到JSON格式的异步消息使用websocket。浏览器(例如最近的FireFox)。
我想避免从浏览器到服务器的新事件通道,所以我的问题是:仅将 websockets 用于 HTTP 服务器到浏览器的异步通信(而不是使用从浏览器到 HTTP 服务器的另一种传输方式)是否有意义?
专用的 HTTP 服务器(MELT 监视器)是否可以在 websocket 上使用SHUT_RD
执行关闭(2),以禁用从浏览器到 HTTP 服务器的任何通过 websocket 的潜在传输,还是违反 websockets 标准?从浏览器到服务器的所有通信都是同步HTTP(例如AJAX)。
我只是在发现网络套接字....
Websocket 是一个全双工通道,双方可以随时在其上发送数据。这使其成为服务器向客户端发送未通知数据的情况的理想选择,因为使用以前的技术(如 XmlHttpRequest),服务器只能在以前请求时发送数据。
RFC 6455 指出,符合标准的 Websocket 服务器必须使用 PONG 帧响应 PING 帧。当您关闭从客户端到服务器的通道时,客户端将无法再发送 ping。此外,当客户端想要终止连接时,它将发送一个 CLOSE-帧,您也应该侦听该帧。
但是,该标准并没有说您的服务器必须在握手完成后以任何特定方式回复任何其他帧,因此您可以忽略来自客户端的任何传入帧,但 PING 和 CLOSE 除外。