我的目标是用特定协议在JavaScript中实现一个websocket客户端。
该客户端应独立于平台。它应该能够从NodeJS环境和浏览器中运行。我知道一种选择是在NodeJS包上使用browserfy,而不是在浏览器中使用结果,但我想知道是否还有其他更优雅的解决方案?
此外,在wsNodeJS包的github repo上,我认为最受欢迎的是据说它返回全局。WebSocket,具有略微不同的API。我仍然可以将其用于独立于平台的客户端应用程序吗?
谢谢你的回复。
最后我使用了https://websockets.github.io/ws/与浏览器WebSocket协议API兼容的NodeJS包。
var WebSock = global.WebSocket || global.MozWebSocket || require('ws');
this.sock = new WebSock(url, this.subProtocol);
this.sock.onopen = (evt) => {};
this.sock.onmessage = (msg) => {};
this.sock.onerror = (err) => {};
根据您的具体需求,我发现Socket.io可以很好地用于NodeJS(使用Socket.io-client和浏览器)。尽管它比WebSockets做得更多,但请确保并深入研究它,因为它可能不适合您的特定用途。
我正在将它用于任务队列,并对此感到满意。
将sockjs客户端的sockjs视为JavaScript客户端库用于服务器实现的SockJS节点。http://sockjs.org