简体   繁体   English

在nodejs中获取socket.io选项的查询

[英]get socket.io option's query in nodejs

I created a chat application with android java as client and node.js as server side. 我创建了一个聊天应用程序,android java作为客户端,node.js作为服务器端。

Client side: 客户端:

IO.Options opt=new IO.Options();
opt.query="token=anything";
socket = IO.socket("http://xxx.xx.xxx.xxx:PORT",opt);
socket.connect(); 

i want to send a token on connection and get it in server for validation... how can i get the token that i pushed in opt.query in node.js? 我想在连接上发送一个令牌并将其送到服务器进行验证...我如何获得我在node.js中的opt.query中推送的令牌?

And if you have good idea for sending some data like tokens on connection or somework for secure the connection Please note that. 如果您有好主意在连接或某些工作上发送一些数据,以确保连接安全。请注意。

Thank you 谢谢

Solution server side: 解决方案服务器端

io.on('connection',function(socket){
console.log(socket.handshake.query.token);
});

thanks for @Marcos 感谢@Marcos

You can access the query options in Node.js via socket.handshake.query 您可以通过socket.handshake.query访问Node.js中的查询选项

const ws = io(http);

ws.use(async(socket, next) => {

    try {
        await validateToken(socket.handshake.query.token));
        return next();
    } catch(e) {
        return next(new Error('Authentication error'));
    }

});

ws.on('connection', socket => {
      /* ... */
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM