Skip to content
导航

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()

参考资料