Reputation: 1593
I want to parse a requested url. When I used Socket.IO I had a request-object I could parse. How can I get the path from the URL?
For example:
http://localhost:4000/foo
I need to extract "foo" from the URL.
I've tried :
io.sockets.on('connection', function (socket){
console.log(socket.handshake.address.address);
console.log(socket.handshake.url);
}
But it they don't print "foo".
Upvotes: 7
Views: 10285
Reputation: 179
I'm accessing the url like this:
io.on('connection', function(conn){
console.log(conn.handshake.headers.referer);
});
Upvotes: 2
Reputation: 445
BTW--Your approach is correct if you are supplying parameters to the socketio connection instead of path elements. It solved my problem when using https://github.com/pkyeck/socket.IO-objc with nodejs socketio to add params to my socket connection.
For example:
[socketIO connectToHost:@"localhost" onPort:8888 withParams:[NSDictionary dictionaryWithObject:@"52523f26f5b23538f000001c" forKey:@"player"]];
constructs URL as follows:
http://localhost:8888/socket.io/1/?t=16807&player=52523f26f5b23538f000001c
The params are accessible on the server in socket.handshake.query
socketio.listen(server).on('connection', function(socket) {
console.log('socket info = ', socket.handshake.query.player);
Upvotes: 4
Reputation: 6520
Use the URL api. http://nodejs.org/docs/latest/api/url.html
u = url.parse(url)
console.log(u.path)
Upvotes: 1