Вопрос

Как использовать сокеты в JavaScript \ HTML?

Может быть, используете какой-нибудь классный HTML5?

Библиотеки?Учебные пособия?Статьи в блоге?

Это было полезно?

Решение

Технические характеристики:

Статьи:

Учебник:

Библиотеки:

Другие советы

Как использовать сокеты в JavaScript/HTML?

В JS или HTML нет возможности использовать сокеты общего назначения.Во-первых, это было бы катастрофой в сфере безопасности.

В HTML5 есть WebSocket.Клиентская часть довольно тривиальна:

socket= new WebSocket('ws://www.example.com:8000/somesocket');
socket.onopen= function() {
    socket.send('hello');
};
socket.onmessage= function(s) {
    alert('got reply '+s);
};

Вам понадобится специализированное приложение сокетов на стороне сервера, чтобы принимать соединения и что-то с ними делать;это не то, что вы обычно делаете из интерфейса сценариев веб-сервера.Однако это относительно простой протокол;моя странная конечная точка на базе Python SocketServer состояла всего из пары страниц кода.

В любом случае, на самом деле его пока не существует.Ни спецификация JavaScript, ни спецификация сетевого транспорта не определены, и ни один браузер не поддерживает их.

Однако вы можете использовать Flash там, где это возможно, чтобы предоставить вашему сценарию запасной вариант до тех пор, пока WebSocket не станет широко доступен.Гимит веб-сокет-js это один бесплатный пример такого.Однако в этом случае вы подвергаетесь тем же ограничениям, что и Flash Sockets, а именно: ваш сервер должен иметь возможность выдавать междоменную политику по запросу на порт сокета, и у вас часто будут возникать трудности с прокси/брандмауэрами.(Патроны вспышки изготавливаются напрямую;для тех, у кого нет прямого доступа к общедоступному IP-адресу и кто может выйти из сети только через HTTP-прокси, они не будут работать.)

Если вам действительно не нужна двусторонняя связь с малой задержкой, лучше придерживаться XMLHttpRequest на данный момент.

Я думаю, что важно отметить, что теперь, когда этому вопросу уже более 1 года, Сокет.ИО с тех пор вышел и, похоже, сейчас является основным способом работы с сокетами в браузере;он также совместим с Node.js насколько я знаю.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top