首先需要安装依赖:
npm install koa koa-router ws
然后创建一个名为 index.js 的文件,并添加以下代码:
const Koa = require('koa');
const Router = require('koa-router');
const WebSocket = require('ws');
const app = new Koa();
const router = new Router();
// 创建 WebSocket 服务器
const wss = new WebSocket.Server({ port: 3000 });
wss.on('connection', (ws) => {
console.log('WebSocket 连接已建立!');
ws.on('message', (message) => {
console.log(`收到消息:${message}`);
// 向客户端发送消息
ws.send(`服务器回复:${message}`);
});
});
router.get('/', async (ctx) => {
ctx.body = 'Hello, World!';
});
app.use(router.routes());
app.listen(3000, () => {
console.log('Koa 服务器启动成功!');
});
在上面的示例中,首先我们创建了一个 Koa 应用程序和一个路由器对象。然后创建了一个 WebSocket 服务器实例,并向其添加了 connection
事件的监听器来处理新的 WebSocket 连接。
在连接建立后,当客户端向服务器发送消息时,message
事件将被触发,并在控制台打印出接收到的消息。然后服务器会通过 send()
方法将回复消息发送给客户端。
最后,我们创建了一个根路由响应,以便可以从浏览器中访问我们的应用程序,并启动了服务器。
保存文件并在终端中运行以下命令:
node index.js
现在您已经创建了一个 WebSocket 服务器,可以通过浏览器或其他 WebSocket 客户端连接到它。例如,在浏览器中打开 http://localhost:3000
并在控制台中输入以下代码以建立 WebSocket 连接:
const ws = new WebSocket('ws://localhost:3000');
ws.onopen = () => {
console.log('WebSocket 连接已建立!');
};
ws.onmessage = (event) => {
console.log(`收到消息:${event.data}`);
};
ws.send('你好,服务器!');
当您向服务器发送消息时,它将在控制台中打印出来。同时,服务器也会将回复消息发送回客户端,并在控制台中显示。