nodejs WebSocket框架和调用方式

胜哥 PHP代码

在 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,需要使用 sockjssockjs-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 框架和调用方式,开发者可以根据自己的需求和实际情况选择和使用。