1 回答
TA贡献1863条经验 获得超2个赞
我不是 100% 确定这是唯一的方法,但可能会有所帮助,所以我将其发布。基于这个答案,我会选择使用相同端口进行 http 和 websocket 连接的服务器。你可以像这样实现它:
const { createServer } = require('http')
const ws = require('ws')
const express = require('express')
const app = express()
const server = createServer(app)
app.get('/', (req, res) => {
res.send('I am a normal http server response')
})
const wsServer = new ws.Server({
server,
path: '/websocket-path',
})
wsServer.on('connection', (connection) => {
connection.send('I am a websocket response')
})
server.listen(3030, () => {
console.log(`Server is now running on http://localhost:3030`)
console.log(`Websocket is now running on ws://localhost:3030/<websocket-path>`)
})
因此,您的服务器在端口 3030 上侦听正常的 http 请求。如果它在路径 '/websocket-path' 上收到一个 websocket 连接请求,它会被传递给 ws 连接处理程序,然后你就可以开始了。
添加回答
举报