Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js-socket.io解析请求的url_Node.js_Url_Request - Fatal编程技术网

node.js-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); } 但是,如果他们

我想解析请求的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);
}
但是,如果他们不打印“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);
});