Я работаю над приложением чата в socketio. Проблема, в которой я застрял, заключается в том, что, если я помещаю свой io.on('connection', ..})
блок вне express маршрута app.get('/chat')
, все работает нормально, но когда я помещаю его в маршрут /chat
. все внутри соединения запускается дважды.
сервер. js
// On new connection
io.on("connection", socket => {
console.log('Socket ID: ' + socket.id);
// I want the user object (inside /chat route) to be available here..
})
// @route:chat
app.get("/chat", auth, async (req, res) => {
const user = User.findbyId(req.userId);
// socket.io part moved outside the route
res.render('chat', {})
})
Вывод по первому запросу /chat
:
Socket ID: 5e82d1a21c9d4400003e9bce
Вывод на второй запрос /chat
:
Socket ID: 5e82d1a21c9d4400003e9bce --> this is repeating
Socket ID: 5e82d1a21c9d4400003e9bc4
И так далее, если я продолжаю запрашивать /chat
.
Есть идеи, как решить эту проблему?