Ответ 1
Легче общаться через TCP-сокеты, когда вы работаете на границе интрасети, поскольку вы, вероятно, имеете контроль над машинами в этой сети и можете открывать порты, подходящие для создания TCP-соединений.
В Интернете вы общаетесь с кем-то другим сервером на другом конце. Они крайне вряд ли будут иметь какой-либо старый сокет, открытый для соединений. Обычно у них будет только несколько стандартных, таких как порт 80 для HTTP или 443 для HTTPS. Таким образом, для связи с сервером вы обязаны подключаться с использованием одного из этих портов.
Учитывая, что это стандартные порты для веб-серверов, которые обычно говорят по протоколу HTTP, вы поэтому должны соответствовать протоколу HTTP, иначе сервер не будет с вами разговаривать. Цель веб-сокетов - дать вам возможность инициировать соединение через HTTP, но затем согласовать с использованием протокола веб-сокетов (при условии, что сервер способен это сделать), чтобы разрешить поток потока, похожий на "TCP-сокет".