Я хочу создать простой протокол на основе JSON, чтобы моя игра могла взаимодействовать с моим настраиваемым сервером, но я не хочу встраивать его в HTTP.
Если я отправлю на свой сервер запрос настраиваемого текстового протокола через порт 80, будут ли брандмауэры блокировать его за неиспользование формата HTTP, или их волнует только номер порта?
Я не буду использовать тот же сервер в качестве веб-сервера, поэтому меня не волнует потеря порта 80 для реального веб-обслуживания.
В качестве небольшого пояснения, меня в основном интересуют типичные домашние межсетевые экраны, которые могут быть у большинства людей, а не корпоративный межсетевой экран высокого класса.
Тематические межсетевые экраны блокируют только по номеру порта. Однако брандмауэры прикладного уровня (17 filter, wfilter enterprise) выполняют блокировку на основе шаблонов протокола.
Поэтому, если ваш брандмауэр является брандмауэром прикладного уровня, ваша программа чата не будет работать.
В качестве небольшого пояснения, меня в основном интересуют типичные домашние межсетевые экраны, которые могут быть у большинства людей, а не корпоративный межсетевой экран высокого класса.
Большинство типичных домашних брандмауэров по умолчанию не блокируют исходящие соединения. Фактически, у большинства домашнего оборудования даже нет брандмауэра, оно просто полагается на NAT для предотвращения входящих соединений. Так что лично я бы не стал слишком беспокоиться об отправке порта 80. Просто используйте любой порт> 1024 и играйте хорошо.
Я бы также добавил, что любой, у кого есть брандмауэр, фильтрующий исходящие соединения, имеет опыт открытия необходимых исходящих портов.
Брандмауэры, которые проводят глубокую проверку пакетов, помечают это как не-HTTP и могут реагировать. Параноидальные корпоративные типы не хотят, чтобы вы запускали SSH через порт 80, чтобы вы могли туннелировать из их структуры сетевой политики.
Однако обычные брандмауэры Linksys / Dlink / Netgeear обычно не имеют таких функций. Особенно по исходящим.
Большинство типичных брандмауэров будут выполнять базовые правила на основе портов (если это порт 80, все в порядке, даже если это действительно какой-то протокол, отличный от HTTP), или они будут выполнять более глубокую проверку и отклонять потоки, которые соответствуют определенному шаблону вредоносности (расширение файла, вирусный шеллкод и т. д.). Я не знаю никого, кто использовал бы подход с использованием белого списка, блокируя все, кроме HTTP, на порту 80.
Какие проблемы вы видите при использовании HTTP? Есть много людей, использующих HTTP для серверов чата и т. Д., Которые ведут себя так же, как игровые движки, взаимодействующие с серверами.
node.js может хорошо подходить на стороне сервера для такого рода приложений.
Еще одна вещь, на которую стоит обратить внимание, - это работа Google над SPDY - http://en.wikipedia.org/wiki/SPDY - Chrome использует его для интенсивной связи со свойствами Google.
Энди