长久以来在没有WebSocket的时候解决服务端消息推送这一让人头疼的事困扰着很多服务端开发的同学,终于在有了WebSocket之后只需要前端引入这一全新的通讯协议就能愉快的解决这些问题了。
WebSocket
首先创建一个WebSocket非常简单1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20var ws = new WebSocket("wss://echo.websocket.org");
ws.onopen = function(evt) {
console.log("Connection open ...");
ws.send("Hello WebSockets!");
};
ws.onmessage = function(evt) {
console.log( "Received Message: " + evt.data);
ws.close();
};
ws.onclose = function(evt) {
console.log("Connection closed.");
};
```
看丸了实例之后发现是不是特别的简单。
首先
var ws = new WebSocket(“wss://echo.websocket.org”);`
通过WebSocket构造函数创建一个WebSocket的实例传入的参数是必须的第一个为地址的URL,第二个参数是可选的。
可以是一个单个的协议名字字符串或者包含多个协议名字字符串的数组。这些字符串用来表示子协议,这样做可以让一个服务器实现多种WebSocket子协议(例如你可能希望通过制定不同的协议来处理不同类型的交互)。如果没有制定这个参数,它会默认设为一个空字符串。
在创建成功之后可以通过onopen的事件来表明这个链接已经准备好接收和发送数据。
客户端向服务端发送数据就调用send()
的方法传入即可, 客户端通过onmessage
来接收数据。
WebSocket的使用和WebWorker是有很多相似的地方的。
WebSocket没有同源策略的限制,可以发送文本也可以发送二进制的文件。
简单来说WebSocket是客户端与服务端通讯的一种很优雅的解决方案。