2009-11-15 7 views
70

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

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

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

+0

Что вы пытаетесь сделать? Какой браузер вы хотите поддерживать? –

+0

Я предполагаю, что вы ссылаетесь на веб-сокеты –

+0

Chrome, Firefox – Rella

ответ

52

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

Статьи:

Учебник:

Библиотеки:

+1

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

+0

@Yea, те же чувства здесь. –

+3

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

70

Как использовать сокеты в 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); 
}; 

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

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

Вы можете, однако, использовать Flash, где доступно, чтобы предоставить сценарий резервному копированию до тех пор, пока WebSocket не будет широко доступен. Gimite's web-socket-js - один бесплатный пример такого. Тем не менее, вы подвергаетесь тем же ограничениям, что и Flash Sockets, а именно, что ваш сервер должен иметь возможность выставлять междоменную политику по запросу на порт сокета, и часто возникают проблемы с прокси-серверами/брандмауэрами. (Флеш-сокеты создаются напрямую, для кого-то, у кого нет прямого публичного доступа к IP-адресу, который может выйти из сети только через HTTP-прокси, они не будут работать.)

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

+0

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

+0

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

+0

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

43

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

+2

ОК. Прошло почти шесть лет. Изменились ли стандарты? – Arin

 Смежные вопросы

  • Нет связанных вопросов^_^