我正在使用socket.io和express制作后端,但是我无法使用nextjs将套接字与我的前端连接,当进入一个页面时,会执行一个通过端点与Web套接字连接的获取,控制器工作,因为我收到响应,但是套接字没有响应,如果有人能指导我,我会很感激,我是新来的。
index.js
app.use('/items', itemsRouter)
app.listen(port, () => {
console.log('Server is runnig on port http://localhost:3001')
})
字符串
router.js
export const itemsRouter = Router()
itemsRouter.get('/', ItemController.getAll)
itemsRouter.post('/', ItemController.create)
itemsRouter.post('/api/data', ItemController.getData)
型
controller.js
export class ItemController {
static getData = async (req, res) => {
io.on('connection', async (socket) => {
console.log('an user has connected')
})
}
}
型
1条答案
按热度按时间fnvucqvd1#
下面是提供的服务器,使用socket.io服务器示例和一个套接字事件处理程序进行了更新。
字符串
Express/HTTP路由器保持不变。
我添加了等效的socket.io和express请求/响应控制器,以展示它们签名的不同之处。
型
通常情况下,套接字对于流式传输和广播更有用,而不是express已经能够实现的请求/响应模式。通常您会希望从路由触发套接字,因此通常希望将
io
示例附加到请求。将
io
示例添加到index.js中的app
型
例如,向已加入
items
room的感兴趣的客户端广播新项目。型