socket.io 是一个基于 WebSocket 的实时通信库,它可以和 Web 服务共用同一个端口。在 socket.io 中,可以通过将其与 Express 等 Web 服务框架集成来共享同一个端口。以下是一个示例,展示了如何在 Express 应用程序中使用 socket.io:javascriptconst express = require('express');const app = express();const http = require('http').Server(app);const io = require('socket.io')(http);app.get('/', (req, res) => { res.sendFile(__dirname + '/index.html');});io.on('connection', (socket) => { console.log('A user connected'); socket.on('disconnect', () => { console.log('User disconnected'); });});http.listen(80, () => { console.log('Server listening on port 80');});
在这个示例中,我们首先创建了一个 Express 应用程序,并通过 app.get
定义了一个基本的路由。然后,我们通过 http.Server
将 Express 应用程序传递给 socket.io
。接着,我们通过 io.on
进行了连接和断开连接的事件监听。最后,我们使用 http.listen
启动 Express 应用程序,并监听在端口 80 上。通过这种方式,我们可以在同一个端口上同时运行 Web 服务和 socket.io 通信。