跳到主要内容

服务端

2024年10月14日
柏拉文
越努力,越幸运

一、WS


1.1 WS Koa

const Koa = require("koa");
const http = require("http");
const WebSocket = require("ws");

const port = 3000;
const app = new Koa();
const server = http.createServer(app.callback());
const wss = new WebSocket.Server({ server });

// WebSocket 连接事件
wss.on("connection", (ws) => {
console.log("WebSocket 连接成功");

// WebSocket 消息事件:
ws.on("message", (message) => {
// 消息类型检查: 在接收到消息后,使用 typeof message 检查消息的类型。
if (typeof message === "string") {
// 处理字符串消息: 如果是字符串,直接处理并回复
console.log("接收到客户端字符串消息: %s", message);
ws.send("服务端回复: " + message);
} else if(Buffer.isBuffer(message)){
// 处理 Buffer 消息: 如果是 Buffer,使用 Buffer.isBuffer() 进行检查,并使用 Buffer.from() 来处理接收到
const buffer = Buffer.from(message);
console.log("接收到客户端 Buffer 消息,长度: %d", buffer.length);
const receivedData = buffer.toString(); // 将 Buffer 转换为字符串
ws.send("服务端收到 Buffer 数据,内容为: " + receivedData);
}else {
console.log("接收到未知类型的消息");
}
});

// WebSocket 关闭事件
ws.on("close", () => {
console.log("WebSocket 连接关闭");
});
});

app.use((ctx) => {
ctx.body = "WebSocket 服务正在运行";
});

server.listen(port, () => {
console.log("Server is running at http://localhost:%d", port);
});

1.2 WS Express

二、Socket.IO


2.1 Socket.IO Koa

2.2 Socket.IO Express