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