7

我想解析一个请求的 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”。

4

3 回答 3

4

顺便说一句——如果您向 socketio 连接提供参数而不是路径元素,那么您的方法是正确的。当使用https://github.com/pkyeck/socket.IO-objc和 nodejs socketio 将参数添加到我的套接字连接 时,它解决了我的问题。

例如:

[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);
于 2013-10-18T21:41:51.267 回答
2

我正在访问这样的网址:

io.on('connection', function(conn){
    console.log(conn.handshake.headers.referer);
});
于 2017-04-20T19:58:20.670 回答
1

使用 URL api。http://nodejs.org/docs/latest/api/url.html

u = url.parse(url)
console.log(u.path)
于 2013-03-26T13:16:23.017 回答