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


82

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

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

Библиотеки? Учебники? Статьи в блогах?


1
Что ты пытаешься сделать? Какой браузер вы хотите поддерживать?
Джеймс Блэк

Я предполагаю, что вы имеете в
виду

Вы имеете в виду сокеты TCP?
AlikElzin-kilaka

Ответы:


57

Характеристики:

Статьи:

Руководство:

Библиотеки:


1
Обновление: bobinceпредоставлено простое руководство на этой странице: P
okw

3
Да, этим пользователем, вероятно, будет Джонас Якоби из Kaazing. Часто появляется везде, где упоминается WebSocket! Я не совсем понимаю Kaazing TBH, сидящего на websocket.org, чтобы продвигать то, что кажется монолитным, не совсем бесплатным клиент-серверным решением, которое имеет поддержку WebSocket как, казалось бы, небольшую часть того, что оно на самом деле делает. Я не знаю, это может быть хорошее решение, но на самом деле я не совсем уверен в маркетинге. [отредактировано, следовательно, после ответа
okw

78

Как использовать сокеты в 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 не станет широко доступным. Web-socket-js от Gimite - один из таких бесплатных примеров. Однако тогда вы подвержены тем же ограничениям, что и Flash Sockets, а именно: ваш сервер должен иметь возможность выдавать междоменную политику по запросу на порт сокета, и вы часто будете испытывать трудности с прокси / брандмауэрами. (Флэш-сокеты создаются напрямую; для тех, у кого нет прямого публичного IP-доступа и который может выйти из сети только через HTTP-прокси, они не будут работать.)

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


Какие типы привязок WS будет поддерживать html5?
Rella

Если вы имеете в виду, как будут выглядеть объекты WebSocket в браузере, это еще предстоит увидеть, но спецификация ( w3.org/TR/websockets ) в последнее время не сильно изменилась. Если с помощью WS Bindings вы говорите о веб-службах, тогда ничего: WebSocket не будет использовать SOAP или любой другой ранее существовавший протокол.
bobince

1
Вы говорите: «Нет возможности использовать сокеты общего назначения в JS или HTML. Например, это было бы катастрофой для безопасности». но как насчет приложений, связанных с телефонным разговором или телефонным разговором? HTML + js нужен не только для стандартных браузеров.
obayhan 08

46

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


13
ХОРОШО. Прошло почти 6 лет. Изменились ли стандарты?
Аарон Исав
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.