只写websocket通信(从HTTP服务器到浏览器)

时间:2014-11-21 12:42:12

标签: jquery c websocket

在我的MELT monitor(GPLv3免费软件,alpha阶段,后来与MELT相关,这是一种扩展GCC编译器的域特定语言;它是一个专门的HTTP服务器使用libonion(HTTP服务器库)和jquery.websocket在C中编程的[meta-],即其C代码将越来越自生成),我想仅将websocket用于异步消息从我的专业Web服务器(MELT监视器)到浏览器的JSON格式(例如最近的FireFox)。

我想避免从浏览器到服务器有一个新的事件通道,所以我的问题是:使用websockets仅用于HTTP服务器浏览异步通信(而不是使用其他方式传输,从浏览器到HTTP)服务器)?

专门的HTTP服务器(MELT监视器)是否可以在websocket上使用SHUT_RD执行shutdown(2)以禁用从浏览器到HTTP服务器的任何可能的传输,或者它是否与websockets标准相反?从浏览器到服务器的所有通信都是同步HTTP(例如AJAX)。

我刚刚发现了websockets ......

1 个答案:

答案 0 :(得分:3)

Websockets是一个全双工通道,双方都可以随时发送数据。这使得它非常适用于服务器向服务器发送未通知数据的情况,因为使用先前的技术(如XmlHttpRequest),服务器只能在先前请求时发送数据。

RFC 6455表明符合标准的Websocket服务器必须响应具有PONG帧的PING帧。当您关闭从客户端到服务器的通道时,客户端将无法再发送ping。此外,当客户端想要终止您应该收听的连接时,它将发送一个CLOSE帧。

但是,标准并未说明您的服务器必须在握手完成后以任何特定方式回复任何其他帧,因此您可以忽略来自客户端的任何传入帧,PING和CLOSE除外。