WebSocket 
WebSockets 允许通过单个TCP连接进行全双工通信,通过持久连接实现了客户端和服务器之间的实时双向通信。
Node.js 服务端 
类似于通过http.createServer内置模块简单启动HTTP服务,有个最通用的npm库ws启动WebSockets服务
js
import { WebSocketServer } from 'ws'
const wss = new WebSocketServer({ port })
wss.on('connection', function connection(ws) {
    ws.on('error', console.error)
    ws.on('message', function message(data) {
        console.log('received: %s', data)
    })
})Web 客户端 
浏览器提供全局API WebSocket 构造函数方便建立ws连接
js
const ws = new WebSocket('ws://localhost:9001')
ws.addEventListener('open', function(){
  console.log('open', arguments)
  //在建立连接后可以成功发送消息
  ws.send('something')
})
ws.addEventListener('message', function(event){
  console.log(event.data)
})
ws.addEventListener('close', function(){
    console.log('close', arguments)
})
ws.addEventListener('error', function(){
    console.log('error', arguments)
})
//可以在任何时候关闭连接
ws.close()