Подключение к веб-узлу HTML5
Я немного смущен о веб-узлах HTML5. Я просмотрел множество обучающих программ, и многие из них имеют разные варианты подключения с использованием разных портов. Что означают эти порты?
Adobe, использует это:
new WebSocket('ws://localhost:1740');
Тогда в другом учебнике есть такие места, где не требуются порты:
new WebSocket("ws://www.websockets.org");
И, наконец, третий учебник имеет порт, но он совершенно другой:
new WebSocket("ws://localhost:8080/echo");
Мой вопрос будет, почему они меняются? Как узнать, к каким портам подключиться? Кроме того, я попытался выполнить собственное подключение:
var ws = new WebSocket("ws://test.ontarget-network.com/");
Но я получаю следующую ошибку: Unexpected response code: 200
Я тестировал и пытался подключиться к другим "портам" (не зная, что я делаю, очевидно, набрав случайные числа), и эта ошибка исчезнет, однако, мой код
ws.onopen = function(){
alert("Connection Established");
};
не будет выполняться.
Я пытаюсь полностью понять API-интерфейсы HTML5, чтобы экспериментировать и создавать более динамические приложения. Спасибо за помощь.
Ответы
Ответ 1
Ниже представлен последний проект WebSocket:
По умолчанию протокол WebSocket использует порт 80 для обычного WebSocket соединения и порт 443 для соединений WebSocket, туннелированных через TLS [RFC2818].
Действительно, вы должны иметь возможность использовать любой действительный порт, который не используется. Пока клиенты пытаются подключиться к тому же порту, что серверная сторона script открывается для подключения сокета, вы должны быть в порядке.
Быстрая заметка о портах:
- Порт 80 - это порт HTTP.
- Порт 8080 является альтернативным HTTP-портом.
- Порт 443 - это протокол HTTPS (то есть HTTP с TLS).
- Порт 1740 в коде Adobe кажется некоторым случайным портом, который еще не используется другими службами.
Для получения полного списка предустановленных портов см. следующее:
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
Что касается вашей ошибки "Неожиданный код ответа: 200", я предполагаю, что URL-адрес WebSocket, который вы используете на стороне клиента, не указывает на действительную серверную сторону script, но это трудно комментировать без дополнительной информации.
Ответ 2
Сервер должен иметь конечную точку, которая принимает соединения WebSocket. Итак, если эта конечная точка /echo
, вы хотите подключиться к:
ws://localhost:8080/echo/websocket
Вы получите ошибку Unexpected response code: 200
, если вы исключите суффикс /websocket
после конечной точки. У меня была такая же путаница, и эта ссылка немного очистила меня.
Ответ 3
У меня была такая же проблема, но выжить с помощью
Unexpected response code: 200
Для обработки веб-сокета необходимо иметь серверную сторону script, или вы можете использовать Node.js, чтобы построить сервер script.
ради образования вы можете попытаться изменить свой собственный websocket sever script.
Ответ 4
На самом деле есть что-то еще... Вы не можете открыть соединение с каждым портом, поскольку в каждом браузере есть список заблокированных портов. Я помню, как я видел полный список портов в "запутанном Интернете" от Михала Залевского; однако, я думаю, что быстрый Google также покажет это.