меня ниже сценария и хотели бы найти решение для этого:Раствор для 2-полосная communcation между общим сервером и серверами сети за NAT,
Частный Сервер находится за NAT, он не имеет фиксированного IP-адрес.
Public Server B имеет открытый IP-адрес.
Публичный сервер B должен будет отправлять сообщения на частный сервер A, следовательно, по бизнес-требованиям.
Я удивляюсь, есть ли какое-либо Java-решение для такого рода общения?
Поскольку частный сервер A не имеет фиксированного IP-адреса, он должен сначала предоставить возможность сообщать публичному серверу B свой IP/порт и т. Д., Или начать сначала соединение, такое как websocket. Затем поддерживайте соединение долгое время, а затем общедоступный сервер B может отправить данные обратно на сервер A.
Этот сценарий похож, но не совсем такой же, как перфорация отверстий UDP. Поскольку я новичок в Java, мне интересно, существует ли какая-либо существующая Java lib для такого случая?
Ограничения:
Нам не разрешено настраивать NAT сети, что означает перенаправление портов не применяются.
Будет много NAT. Внутри каждого NAT будет сервер (или кластер), сообщающий общему серверу. Поэтому решение websocket не может быть лучшим решением, так как он будет поддерживать общий сервер, поддерживающий множество подключений в памяти.
Благодаря
Вы не можете инициировать подключение _into_ системы, которая находится за брандмауэром NAT, если не используется переадресация портов. Период. Конец истории. Это не имеет ничего общего с Java и зависит только от того, как работает NAT, и ничто из того, что вы могли бы сделать в Java, на сервере _either_, не могло повлиять на это. –