Socket.io - How to get client URL request on serve

2019-03-30 07:14发布

问题:

In my app.js (server) I need to know from where (URL) the request came.

Currently, I'm passing the URL as parameter from the client:

socket.emit('request', window.location.href);

and processing it server side

socket.on('request', function(url){
    console.log(url);
    ...
});

But that's clearly risky and unsecure (clients can send anything to the server).

So I'm guessing.. is it possible to get the URL parameter only on server side? Maybe from the socket object?

回答1:

To obtain the connection URL

io.sockets.on('connection', function(socket) {

    console.log("url: " + socket.handshake.url);

});

This will return something like: url: /socket.io/1/?t=1407807394827