下面是NodeJS多种创建WebSocket监听的方式的完整攻略。
标准 WebSocket 创建方式
- 在 Node.js 中使用 WebSocket 的第一步是将其作为依赖项添加到您的项目中。您可以使用以下命令执行此操作:
npm install --save websocket
- 在您的项目代码中,您需要加载 WebSocket 模块。这可以通过以下代码行完成:
const WebSocket = require('websocket').server;
- 可以使用以下代码创建 WebSocket 服务器并将其绑定到具有“http”模块的 HTTP 服务器上:
const http = require('http');
const server = http.createServer((request, response) => {});
const wsServer = new WebSocket({
httpServer: server
});
- 可以使用
wsServer
上的回调函数来处理 WebSocket 连接:
wsServer.on('request', (request) => {
const connection = request.accept(null, request.origin);
connection.on('message', (message) => {
if (message.type === 'utf8') {
console.log(`Received Message: ${message.utf8Data}`);
connection.sendUTF(message.utf8Data);
} else if (message.type === 'binary') {
console.log(`Received Binary Message of ${message.binaryData.length} bytes`);
connection.sendBytes(message.binaryData);
}
});
connection.on('close', (reasonCode, description) => {
console.log(`Peer ${connection.remoteAddress} disconnected.`);
});
});
使用 Socket.IO 创建 WebSocket
- 使用以下命令将 Socket.IO 添加为项目依赖项:
npm install socket.io
- 下面是使用 Socket.IO 建立 WebSocket 并向客户端发送消息的代码示例:
const server = require('http').createServer();
const io = require('socket.io')(server);
io.on('connection', (socket) => {
console.log('a user connected');
socket.on('disconnect', () => {
console.log('user disconnected');
});
socket.on('chat message', (msg) => {
console.log(`message: ${msg}`);
io.emit('chat message', msg);
});
});
server.listen(3000, () => {
console.log('listening on *:3000');
});
使用 ws 创建 WebSocket
- 使用以下命令将 ws 添加为项目依赖项:
npm install ws
- 下面是使用 ws 建立 WebSocket 并向客户端发送消息的代码示例:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', (ws) => {
ws.on('message', (message) => {
console.log(`Received message => ${message}`);
ws.send(`Hello, you sent => ${message}`);
});
ws.send('Hi there, I am a WebSocket server');
});
以上就是三种使用 Node.js 创建 WebSocket 的方式的完整攻略,其中包含了至少两个代码示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:NodeJS多种创建WebSocket监听的方式(三种) - Python技术站