一、 WebSocket是什么?
Websocket是一种网络通信协议,是一个在计算机里专门在【两点】之间传输数据的约定和规范。
二、 为什么存在WebSocket?
因为 HTTP 协议有一个缺陷:通信只能由客户端发起。
但实际上,如果服务器有连续的状态变化,客户端要获知就非常麻烦。我们只能使用"轮询":每隔一段时候,就发出一个询问,了解服务器有没有新的信息。
比如:摄像头识别到跌倒的人会在前端页面上报警,这个时候就需要服务器向客户端发送请求。
知道轮询的原理后,我们可以轻而易举得看出缺点是:效率低,且浪费资源。(因为每查看一下服务器是否有新消息的时候,就要建立tcp连接)
WebSocket是基于Http协议的,或者说借用了Http协议来完成一部分握手,在握手阶段与Http是相同的。
最重要的一点是:没有同源限制,客户端可以与任意服务器通信,也就不用考虑跨域的问题了。
三、 怎么使用WebSocket?
1 var ws = new WebSocket("wss://example.websocket.com");//协议标识符是ws(如果加密,则为wss),括号里是服务器地址。新建 WebSocket 实例,客户端就会与服务器进行连接。 2 3 ws.onopen = function(e) { 4 console.log("Connection open ..."); 5 ws.send("Hello WebSockets!"); 6 }; //实例对象的onopen属性,用于指定连接成功后的回调函数。 7 8 ws.onmessage = function(e) { 9 console.log( "Received Message: " + e.data); 10 ws.close(); 11 }; //实例对象的onmessage属性,用于指定收到服务器数据后的回调函数。 12 13 ws.onclose = function(e) { 14 console.log("Connection closed."); 15 }; //实例对象的onclose属性,用于指定连接关闭后的回调函数。 16 17 //实例对象的send()方法用于向服务器发送数据。
现在的想法是