WebSocket 是一种基于TCP的提供全双工/双向通信的通信协议,因为它原生支持跨域,且安全性较高,而且上手容易,是很好的跨域解决方案,甚至可以很容易的搭建一个聊天室。
使用方法
客户端
服务器(NodeJS)
WebSocket事件
open
123ws.onopen = function(e) {...}message
123ws.onmessage = function(e) {...}error
123ws.onerror = function(e) {...}close
123ws.onclose = function(e) {...}
WebSocket方法
send()
可以传输两种类型的之:string和binary;因为WebSocket是事件驱动的协议,所以必须确保连接已经打开并且已经准备好接收信息了。12345678910111213var ws = new WebSocket('ws://localhost:8181');ws.onopen = function(e) {ws.send(JSON.stringigy(stock_request));}//orfunction processEvent(e) {if(ws.readState === WebSocket.OPEN) {//Socket open, sendws.send(e);} else {//Show an error, queue it for sending later, etc}}close()
123ws.close();//or pass a numeric code and human-readable stringws.close(100, "Goodbye, World!");
WebSocket close()方法状态码
https://developer.mozilla.org/zh-CN/docs/Web/API/CloseEvent
WebSocket 属性
当open事件触发后,WebSocket对象会有几个属性可以被客户端应用读取。
readyState
| 属性名| 值| 描述|
| :——– | ——–:|:– |
| WebSocket.CONNECTING| 0 | 连接还未打开|
| WebSocket.OPEN| 1 | 连接已打开并准备通信|
| WebSocket.CLOSING | 2 | 正在关闭连接 |
| WebSocket.CLOSED | 3 | 连接已关闭 |bufferedAmount
常用于发送二进制数据,确保在连接关闭前所有数据已经发送或者在客户端执行某些限制- protocol
服务器端所采用的子协议(在使用WebSocket构造器时指定的protocol参数,如果服务器没有采用则为空)
更多WebSocket详细信息参考MDN的WebSocket API