参考阮一峰博客:WebSocket 教程 优点:HTTP协议只能由客户端发起,服务器无法主动向客户端推送消息。 WebSocket可以。 特点:
- 同HTTP一样,WebSocket建立在TCP连接之上
- 与HTTP有良好的兼容性,默认端口为80和443,握手阶段采用HTTP协议,能够通过各种HTTP代理服务器
- 数据格式轻量,通信高效
- 可以发送文本与二进制数据
- 没有同源限制,不过可以手动设置跨域
- 协议标识符是ws,加密的是wss,服务器网址就是url
Example:
客户端代码:
var ws = new WebSocket('wss://echo.websocket.org')
ws.onopen = function (ev) {
console.log('connection open...')
ws.send('hello server!')
}
ws.onmessage = function (e) {
console.log('Received ' + e.data)
}
ws.onclose = function (ev) {
console.log('Connection closed!')
}
服务端代码: 安装 websocketd 服务器,见websocketd
process.stdin.setEncoding('utf8');
process.stdin.on('readable', function() {
var chunk = process.stdin.read();
if (chunk !== null) {
process.stdout.write('data: ' + chunk);
}
});
使用如下命令启动服务端:
$ websocketd --port=8080 node ./server.js
|