2016-11-21 11 views
1

Я использую Vert.x Core 3.3.3 и Web 3.3.3 в Java в качестве сервера EventBus и Vert.x 2.0.0 и SockJS 1.1.1 на веб-клиент в Javascript для подключения к EventBus. Я подключен, способен отправлять и получать сообщения, и весь входящий и исходящий трафик открыт. Все работает нормально.Javascript Vert.x Клиент EventBus SockJS получает хост и порт подключения

Мой сервер может получить хост и порт для каждого подключения EventBus при подключении клиента. Это происходит из события моста SockJSHandler в Java через socket(). RemoteAddress() в формате «host: port».

На стороне веб-клиента есть функция, позволяющая получить удаленный адрес (хост и порт сервера) соединения EventBus SockJS с моим EventBus сервера Vert.x? Я просмотрел документацию для веб-клиента Vert.x (http://vertx.io/docs/jsdoc/ & https://github.com/vert-x3/vertx-web), но не нашел ничего полезного.

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Заранее спасибо.

EDIT 1:

я понял, что я на самом деле ищет в моем оригинальный вопрос и сформулировал это плохо. Я знаю, что происходит с хостом и портом EventBus, когда я подключаюсь (т. Е. Var eb = new EventBus («localhost: 8080/eventbus»), как сказал @Paulo).

То, что я действительно ищу, это хост и порт для обработчика, который мой клиент регистрирует на этом EventBus. Я вижу это на стороне сервера, как упоминалось выше. Хост возвращается как IP-адрес, а не то, что я передал, чтобы создать соединение EventBus на стороне клиента. И порт отличается, потому что для этого обработчика (?) Создано новое соединение SockJS. Возможно ли получить хост и порт, особенно порт, соединения SockJS для обработчика моего клиента.

ответ

2

Информация, которую вы хотите иметь, это то, что вы уже знаете. При создании соединения eventbus с вашего веб-приложения клиента вы делаете:

var eb = new EventBus('http://localhost:8080/eventbus'); 

Как вы можете увидеть параметр, который вы должны передать в конструктор содержит то, что вы хотите знать:

localhost:8080 

Большая часть раз вы не хотите использовать жёстко прописанные имя хоста + порт, но и место, где был отслужен ваш HTML так в JavaScript вы можете просто сделать:

window.location.host 

И это даст вам Locati где работает ваш сервер.

+0

Местоположение сервера не совпадает с подключением обработчика SockJS к EventBus. Например: я делаю подключение к localhost: 8080, как вы описали выше. Однако обработчик, который я назначаю EventBus, подключается к другому порту. Я вижу это на стороне сервера так, как описано выше. В этом случае мой адрес клиента на стороне сервера возвращается как xxx.xx.xx.xxx:36138. Я хочу знать, могу ли я получить этот адрес (особенно мой порт SockJS) для использования в качестве уникальной ссылки между сервером и клиентом. – wrslatz

+0

Я считаю, что мой первоначальный вопрос вводил в заблуждение и не объяснялся достаточно ясно. Как сказал @Paulo, у меня есть хост и порт EB-соединения, когда я подключаюсь. То, что я действительно ищу, это хост и порт обработчика моего клиента, который я регистрирую на этом EB. Я уточню вопрос. – wrslatz

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

  • Нет связанных вопросов^_^