服务端
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