2013-03-19 3 views
1

Когда я получаю определенное событие из подключенного сокета, я должен отправить запрос с параметром my hostname и port. Я надеялся получить эту информацию из объекта сокета. К сожалению, документации по этому поводу мало, и я не могу понять, возможно ли и как это возможно.Как получить имя хоста сокета?

Итак, можно сделать что-то подобное в Socket.io:

io.sockets.on('connection', function(socket){ 
    console.log(socket.manager.server.hostname) 
})' 

(Или, наоборот: какое мышление ошибки я делаю здесь, думая, что это должно быть возможно в первом случае?)

+0

Я никогда не использовал socket.io себя, но пытаться проверьте, что такое контекст (console.log (util.inspect (this)), возможно, информация, которую вы ищете, находится на этом объекте. – ExxKA

+0

Невозможно, чтобы 'socket.io' знал, как другие могут разрешить хост он включен. Много раз хост, который он прослушивает, является либо «127.0.0.1', либо« 0.0.0.0 », который все это знает. Если вы знаете, что имя хоста вашего сервера будет корректно разрешено, вы можете использовать [' os.hostname() '] (http://nodejs.org/api/os.html#os_os_hostname), или просто поместите хост в файл конфигурации. – Chad

+0

@ Черт возьми, но с обычным запросом я могу хотя бы разобрать URL-адрес запросить и вывести имя хоста из что. Неужели что-то вроде этого также возможно с помощью Websockets? – Vincent

ответ

3

попытка: console.log (socket.handshake.headers.host);

(сплит-порт, если это необходимо: console.log (socket.handshake.headers.host.split (":"). Сдвиг());)

+1

Удивительный! Позаботьтесь о том, как вы узнали об этом? – Vincent

+1

нашел его, изучив исходный код socket.io – dknaus

Смежные вопросы