WebSocket 为客户端和服务器端提供了全双工通信。
搭建简易的 WebSocket 服务器
ws npm 包几乎是 WebSocket 事实上的实现标准。下面代码基于 ws 实现了一个 WebSocket 服务器,对所有客户端响应 "Hello" 字符串。
const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 9527 });
server.on('connection', (socket) => {
socket.on('message', (msg) => {
console.log('received ', msg.toString());
socket.send('Hello');
});
socket.on('close', () => {
console.log('close');
});
});
编写客户端代码
const ws = new WebSocket('ws://localhost:9527');
ws.addEventListener('open', (e) => {
console.log('open:', e);
// 发送消息
ws.send("Hello from client")
});
ws.addEventListener('message', (e) => {
// 接收服务器端消息
console.log('message:', e.data);
});
ws.addEventListener('error', (e) => {
console.log('error:', e);
});
ws.addEventListener('close', (e) => {
console.log('close:', e);
});