如何使用WebSocket的服务器设置安全WebSocket连接和Node.js的
问题描述:
使用WebSocket的服务器我无法设置安全WebSocket连接和Node.js的如何使用WebSocket的服务器设置安全WebSocket连接和Node.js的
服务器端
var options = {
key: fs.readFileSync(PRIVATE_KEY),
cert: fs.readFileSync(CERTIFICATE)
};
// create web server
var server = ws.createServer(options);
server.listen(8000);
...
客户端侧
<script language="javascript" type="text/javascript">
var wsUri = "wss://url:8000";
function init() {
websocket = new WebSocket(wsUri);
}
...
window.addEventListener("load", init, false);
</script>
但它为WS
var wsUri = "ws://url:8000";
任何想法?
答
自述为websocket-server:
这是WebSocket协议的服务器。它目前使用协议规范的draft75和draft76工作 。
Chrome v15不再使用draft75/draft76。它使用WebSocket规范的最新版本8,与旧版草案不兼容(握手机制和发送数据的方式都已更改)。这可能是你的问题。
尝试使用支持较新的WebSocket规范的node.js包,我推荐Worlize/WebSocket-Node或者您可以试试socket.io。
您正在使用哪种浏览器?不同的浏览器支持不同版本的WebSocket规范,只有Chrome 14和Firefox 7支持WS规范的最新草案8。另外你如何处理'握手'与WebSocket建立连接? –
我正在使用谷歌浏览器(第15版) 握手时使用自签名证书。 我试过普通的https服务器内置的nodejs,它对这个证书正常工作,我的意思是https:// url:port。但websocket-server包中的websocket实现有些问题。 –
我的意思是你用什么node.js包来处理WebSockets?或者你正在推出自己的解决方案?你有没有试过Worlize/WebSocket-Node https://github.com/Worlize/WebSocket-Node?编辑:只是注意到你提到了一个叫'websocket-server'的东西,这是一个node.js的包吗?你能提供一个链接吗? –