Как использовать сокеты в JavaScript \ HTML?[закрыто]
-
20-09-2019 - |
Вопрос
Как использовать сокеты в JavaScript \ HTML?
Может быть, используете какой-нибудь классный HTML5?
Библиотеки?Учебные пособия?Статьи в блоге?
Решение
Технические характеристики:
Статьи:
Учебник:
Библиотеки:
- Проверьте этот пост SO html5 websocket нужен сервер?, он ссылается на https://kaazing.com/download
Другие советы
Как использовать сокеты в 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
на данный момент.