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