Постоянное соединение между WAN и сервером LAN
Нам необходимо иметь постоянное соединение между серверами в глобальной и локальной сети. В основном несколько серверов локальной сети должны зарегистрироваться на сервере в Интернете и всегда поддерживать открытое соединение, потому что мы не можем просить клиентов, которые владеют серверами в локальной сети, настроить переадресацию портов, а также потому, что могут быть проблемы с брандмауэром.
Какие у меня варианты здесь? Я думаю, либо веб-сокеты, либо серверы в локальной сети долго опрашивают наш сервер в Интернете. Есть ли лучшее решение?
1 ответ
Ваши варианты - учитывая, что вы хотите избежать проблем с прокси и брандмауэрами - возможно:
- Используйте веб-сокеты, порт 80 или 443
- Используйте длительный опрос (который не является действительно постоянным, если вам нужно двунаправленное соединение!) Порт 80 или 443
- Инкапсулируйте любые данные в запрос http, используя порт 80
- Используйте порт 443 с ssl-шифрованием и делайте все, что хотите на уровне протокола. Обычно у вас не будет проблем с использованием даже какого-то странного пользовательского протокола, если вы используете этот порт с ssl-шифрованием, поскольку ни брандмауэры, ни прокси-серверы обычно (не пытаются) проверить, что вы делаете, когда они чувствуют, что они считают https,
Все остальное, вероятно, выходит за рамки возможного, насколько я понимаю сценарий, но вы должны быть в состоянии сделать то, что вам нужно, используя порт 443 с некоторым протоколом, созданным для постоянных соединений (это возможно с веб-сокетами, но вы столкнетесь с другими проблемы действительно быстрые (например, пропущенные реализации ping / pong), тогда, если вы не создадите свой собственный код, что, вероятно, сделает бессмысленным использование веб-сокетов в первую очередь)