在 Node.js 中,可以使用多种 WebSocket框架来实现实时双向通信。以下是几种常用的 WebSocket 框架和调用方式:
WebSocket API:Node.js 提供了内置的 WebSocket API,可以直接在应用程序中使用。使用 WebSocket API,需要使用 ws
模块,并通过创建 WebSocket 服务器来处理客户端连接。下面是一个简单的示例:
const WebSocket = require('ws'); const server = new WebSocket.Server({ port: 8080 }); server.on('connection', (socket) => { console.log('Client connected'); socket.on('message', (data) => { console.log(`Received: ${data}`); }); socket.on('close', () => { console.log('Client disconnected'); }); });
Socket.io:Socket.io 是一个流行的 WebSocket 框架,它提供了更高级的功能,如房间管理、断线重连等。使用 Socket.io,需要使用 socket.io
模块,并创建一个 Socket.io 服务器来处理客户端连接。下面是一个简单的示例:
const io = require('socket.io')(8080); io.on('connection', (socket) => { console.log('Client connected'); socket.on('message', (data) => { console.log(`Received: ${data}`); }); socket.on('disconnect', () => { console.log('Client disconnected'); }); });
SockJS:SockJS 是一个基于 WebSocket 的框架,它提供了一种轻量级的方式来实现实时通信,可以兼容不支持 WebSocket 的客户端。使用 SockJS,需要使用 sockjs
和 sockjs-client
模块,并创建一个 SockJS 服务器来处理客户端连接。下面是一个简单的示例:
const sockjs = require('sockjs'); const http = require('http'); const server = http.createServer(); const sockServer = sockjs.createServer({ prefix: '/ws' }); sockServer.on('connection', (socket) => { console.log('Client connected'); socket.on('data', (data) => { console.log(`Received: ${data}`); }); socket.on('close', () => { console.log('Client disconnected'); }); }); sockServer.installHandlers(server, { prefix: '/ws' }); server.listen(8080);
以上是几种常用的 Node.js WebSocket 框架和调用方式,开发者可以根据自己的需求和实际情况选择和使用。
评论