在WebSocket以前你可能会利用ajax进行轮询(包括现在有些没有集成WebSocket的软件),这就造成了做事器的多重压,大量花费做事器带宽和资源。
面对这种状况,HTML5定义了WebSocket协议,能更好的节省做事器资源和带宽并实现真正意义上的实时推送。
WebSocket协议实质上是一个基于TCP的协议,它由通信协议和编程API组成,WebSocket能够在浏览器和做事器之间建立双向连接, 以基于事宜的办法,授予浏览器实时通信能力。既然是双向通信,就意味着做事器端和客户端可以同时发送并相应要求,而不再像HTTP的要乞降相应。

1、Socket.onopen 连接建立时触发
2、Socket.onmessage 客户端吸收做事端数据时触发
3、Socket.onerror 通信发生缺点时触发
4、Socket.onclose 连接关闭时触发
WebSocket 方法1、Socket.send() 利用连接发送数据
2、Socket.close() 关闭连接
Nodejs + WebSocket 示例这里我们先安装一下WebSocket模块:
npm i nodejs-websocket -S
新建一个index.js作为做事端:
var ws = require(\公众nodejs-websocket\公众);console.log(\"大众开始建立连接...\公众)var server = ws.createServer(function(conn){ conn.on(\"大众text\公众, function (str) { console.log(\公众message:\"大众+str) conn.sendText(\"大众My name is Web Xiu!\"大众); }) conn.on(\"大众close\"大众, function (code, reason) { console.log(\"大众关闭连接\"大众) }); conn.on(\"大众error\"大众, function (code, reason) { console.log(\"大众非常关闭\公众) });}).listen(8001)console.log(\公众WebSocket建立完毕\"大众)
客户端
if(window.WebSocket){ var ws = new WebSocket('ws://localhost:8001'); ws.onopen = function(e){ console.log(\"大众连接做事器成功\公众); // 向做事器发送 ws.send(\"大众what`s your name?\"大众); } ws.onclose = function(e){ console.log(\"大众做事器关闭\公众); } ws.onerror = function(){ console.log(\"大众连接出错\"大众); } // 吸收做事器的 ws.onmessage = function(e){ let message = \公众message:\"大众+e.data+\"大众\"大众; console.log(message); } }
这样,客户端发送:ws.send(\公众whats your name?\公众);,做事端回答:conn.sendText(\"大众My name is Web Xiu!\"大众);`,只要连接不断开,就可以一贯通信。
公告为了感谢大家一贯以来的支持,小编发起了抽奖活动,大家可以去参与,转发抽奖活动和关注小编即可参与,抽出5名小伙伴每人20元话费褒奖。再次感谢大家的支持。