基本上正如标题所说,我如何从任何路由向前端发出套接字?
例如假设我有一条路线
route.get("/queue", function(req, res) {
socket.emit("add queue", "username");
});
route.get("/queue/leave", function(req, res) {
socket.emit("leave queue", "username");
});
或者我必须在异步回调中完成所有操作吗?
最佳答案
将用户的套接字 ID 存储在 session 或全局中,这应该演示基本思想:
var io = require('socket.io');
var users = {};
io.on('connection', function(socket) {
io.on('register', function(user) {
users[user] = socket.id;
});
});
route.get('/login', function(req, res) {
...
req.session.user_id = user_id;
});
route.get("/queue/leave", function(req, res) {
var socketId = users[req.session.user_id];
io.sockets.connected[socketId].emit('alert', 'whatup?');
});
客户端:
socket.emit('register', user_id);
关于javascript - 如何从连接回调之外的应用程序中的任何位置发出套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30133094/