#node.js #sockets #express #socket.io
#node.js #сокеты #экспресс #socket.io
Вопрос:
У меня есть экспресс-код в JS-файле сервера:
app.post('/confirm', function (req, res) {
// Here I need to send socket with emit()
});
Ниже приведен код, который у меня есть Socket.io:
io.on('connection', function (client) {
// All methods
});
Проблема в том, что я не могу получить доступ к socket
экспресс-методу app.post()
in и не могу отправлять данные с помощью POST action.
Как я могу это использовать?
Комментарии:
1. Вы должны хранить их отдельно, потому что сокет. io использует протокол ws и wss, в то время как экспресс-метод использует http и htpps
Ответ №1:
Вы можете передавать данные в определенные подключенные сокеты, используя следующее:
io.to(socket_id).emit('something', {"bar":"foo"});
Переменная «socket_id», как, вероятно, догадались, socket.id из подключенной розетки.
Вероятно, вам придется сохранить их вместе с какой-либо другой идентификацией в массиве или объекте, чтобы позже отправлять данные нужным клиентам с использованием экспресс-маршрутов.
PS: Поскольку ваш код
io.on('connection', function (client) {
// All methods
});
вы бы использовали client.id
для получения идентификатора сокета.