我想解析一个请求的网址。当我使用websocket.io时,我有一个可以解析的请求对象。我怎么能用socket.io做到这一点?
示例:
http://localhost:4000/foo
我怎么能脱离“foo”? 我试过了:
io.sockets.on('connection', function (socket) {
console.log(socket.handshake.address.address);
console.log(socket.handshake.url);
}
但它不会打印“foo”
答案 0 :(得分:3)
BTW - 如果要为socketio连接而不是路径元素提供参数,那么 的方法是正确的。当使用https://github.com/pkyeck/socket.IO-objc和nodejs socketio将params添加到我的套接字连接时,它解决了我的问题。
例如:
[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
中的服务器上访问paramssocketio.listen(server).on('connection', function(socket) {
console.log('socket info = ', socket.handshake.query.player);
答案 1 :(得分:1)
我正在访问这样的网址:
io.on('connection', function(conn){
console.log(conn.handshake.headers.referer);
});
答案 2 :(得分:0)
使用URL api。 http://nodejs.org/docs/latest/api/url.html
u = url.parse(url)
console.log(u.path)