node.js-socket.io解析请求的url
我想解析请求的url。当我使用Socket.IO时,我有一个可以解析的请求对象。如何从URL获取路径 例如:node.js-socket.io解析请求的url,node.js,url,request,Node.js,Url,Request,我想解析请求的url。当我使用Socket.IO时,我有一个可以解析的请求对象。如何从URL获取路径 例如: http://localhost:4000/foo 我需要从URL中提取“foo” 我试过: io.sockets.on('connection', function (socket){ console.log(socket.handshake.address.address); console.log(socket.handshake.url); } 但是,如果他们
http://localhost:4000/foo
我需要从URL中提取“foo”
我试过:
io.sockets.on('connection', function (socket){
console.log(socket.handshake.address.address);
console.log(socket.handshake.url);
}
但是,如果他们不打印“foo”,则使用URL api
顺便说一句——如果您向socketio连接提供参数而不是路径元素,那么您的方法是正确的。它解决了我在使用nodejssocketio向套接字连接添加参数时遇到的问题
例如:
[socketIO connectToHost:@"localhost" onPort:8888 withParams:[NSDictionary dictionaryWithObject:@"52523f26f5b23538f000001c" forKey:@"player"]];
按如下方式构造URL:
http://localhost:8888/socket.io/1/?t=16807&player=52523f26f5b23538f000001c
可以在服务器的socket.handshake.query中访问这些参数
socketio.listen(server).on('connection', function(socket) {
console.log('socket info = ', socket.handshake.query.player);
我访问url的方式如下:
io.on('connection', function(conn){
console.log(conn.handshake.headers.referer);
});
但我能解析出字符串吗?@poppel-oh!对不起,我不知道你没有那个消息。您总是可以使用客户端的
窗口。location
获取URL,并将该信息与数据一起传递。请注意,信任页面发送正确的地址是非常糟糕的。如果您有某种房间系统或身份验证系统,依赖于您访问特定的url,那么用户可以欺骗它并访问其他地方。
io.on('connection', function(conn){
console.log(conn.handshake.headers.referer);
});