参考阮一峰博客:WebSocket 教程
优点:HTTP协议只能由客户端发起,服务器无法主动向客户端推送消息。
WebSocket可以。
特点:
- 同HTTP一样,WebSocket建立在TCP连接之上
- 与HTTP有良好的兼容性,默认端口为80和443,握手阶段采用HTTP协议,能够通过各种HTTP代理服务器
- 数据格式轻量,通信高效
- 可以发送文本与二进制数据
- 没有同源限制,不过可以手动设置跨域
- 协议标识符是ws,加密的是wss,服务器网址就是url
// client.js
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
// server.js
process.stdin.setEncoding('utf8');
process.stdin.on('readable', function() {
var chunk = process.stdin.read();
if (chunk !== null) {
process.stdout.write('data: ' + chunk);
}
});
【计网|WebSocket JS】使用如下命令启动服务端:
$ websocketd --port=8080 node ./server.js
推荐阅读
- 安全|jwt与base64和base64url
- react|React hook useEffect 与 计时器 setInterval
- Web|动态创建表格案例
- Web|Web API 实用案例
- Web|Web APIs 实用案例
- JavaScript|JavaScript循环及案例
- JavaScript|JavaScript数据类型
- 后端|字符串虐哭空巢老人记
- Android技术汇总|Android应用安全开发之浅谈加密算法的坑