java - 在nodejs中获取socket.io选项的查询
问题描述
我创建了一个聊天应用程序,其中 android java 作为客户端,node.js 作为服务器端。
客户端:
IO.Options opt=new IO.Options();
opt.query="token=anything";
socket = IO.socket("http://xxx.xx.xxx.xxx:PORT",opt);
socket.connect();
我想在连接时发送一个令牌并将其放入服务器进行验证...如何获取我在 node.js 中的 opt.query 中推送的令牌?
如果您有好主意发送一些数据,如连接上的令牌或一些工作以保护连接,请注意。
谢谢
解决方案 服务器端:
io.on('connection',function(socket){
console.log(socket.handshake.query.token);
});
感谢@Marcos
解决方案
您可以通过以下方式访问 Node.js 中的查询选项socket.handshake.query
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 => {
/* ... */
});
推荐阅读
- python - 存储一张包含 5000 万行的表的最佳方法
- git - 在一个存储库中发生更改(推/拉)后,有没有办法在多个存储库中运行自动化测试?
- php - 使用 PHP 从字符串中获取特定值
- python - 根据字符串中的整数将列表拆分为子列表
- java - 用 apache camel 实现信号量
- mysql - 如何在 MySQL 中针对视图中的所有记录创建文本字符串
- excel - VBA - 使用返回按钮显示第一张表中的数据
- .net - AWS .NET SDK - 获取 beanstalk 应用程序的 EC2 实例列表
- python - 元组的排序列表(Python)
- javascript - 如何以图片的形式显示图标?