如何在 socket.io 的中间件中获取事件详细信息
How to get event details in middleware for socket.io
我正在尝试为我的节点服务器上的每个事件记录 event name
和 parameter
。为此,我使用了
io.use(function(socket, next){
// how to get event name out of socket.
});
现在,我在尝试获取事件名称和参数时卡住了。对我来说,这看起来像是 API 开发人员的共同需求,所以我很确定图书馆必须有某种方式来获得它,我已经尝试阅读文档和源代码,但我无法获得东西。
socket事件需要处理好,反正事件不处理是没有响应的。
var io = require('socket.io')(server);
var sessionMiddleWare=(session({secret: 'secret key', resave: true, saveUninitialized: true,cookie: { path: '/', httpOnly: true, maxAge: 300000 },rolling: true}));
app.use(sessionMiddleWare)
io.use(function(socket, next) {
sessionMiddleWare(socket.request, socket.request.res, next);
});
io.on('connection', function(socket) { // On Socket connection.
// inside this you can use different events
//event name and parameters can be found in socket variable.
console.log(socket.id) // prints the id sent from the client.
console.log(socket.data) // prints the data sent from the client.
// example event
socket.on('subscribe', function(room) { // Event sample.
console.log('joining room', room);
socket.room=room;
socket.join(room);
});
})
希望对您有所帮助。
我正在尝试为我的节点服务器上的每个事件记录 event name
和 parameter
。为此,我使用了
io.use(function(socket, next){
// how to get event name out of socket.
});
现在,我在尝试获取事件名称和参数时卡住了。对我来说,这看起来像是 API 开发人员的共同需求,所以我很确定图书馆必须有某种方式来获得它,我已经尝试阅读文档和源代码,但我无法获得东西。
socket事件需要处理好,反正事件不处理是没有响应的。
var io = require('socket.io')(server);
var sessionMiddleWare=(session({secret: 'secret key', resave: true, saveUninitialized: true,cookie: { path: '/', httpOnly: true, maxAge: 300000 },rolling: true}));
app.use(sessionMiddleWare)
io.use(function(socket, next) {
sessionMiddleWare(socket.request, socket.request.res, next);
});
io.on('connection', function(socket) { // On Socket connection.
// inside this you can use different events
//event name and parameters can be found in socket variable.
console.log(socket.id) // prints the id sent from the client.
console.log(socket.data) // prints the data sent from the client.
// example event
socket.on('subscribe', function(room) { // Event sample.
console.log('joining room', room);
socket.room=room;
socket.join(room);
});
})
希望对您有所帮助。