Как использовать сокеты в JavaScript\HTML?
Может быть, вы используете какой-нибудь классный HTML5?
Библиотеки? Учебники? Статьи в блоге?
Как использовать сокеты в 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);
};
Вам потребуется специализированное приложение сокета на стороне сервера, чтобы выполнить соединения и сделать с ними что-то; это не то, что вы обычно делаете с интерфейсом сценариев веб-сервера. Однако это относительно простой протокол; моя noddy Python SocketServer-конечная точка была всего лишь несколькими страницами кода.
В любом случае, он еще не существует. Ни спецификация на стороне JavaScript, ни спецификация транспорта сети не прибиты, а браузеры не поддерживают ее.
Однако вы можете использовать Flash, где доступно, чтобы предоставить script резервную копию до тех пор, пока WebSocket не будет широко доступен. Gimite web-socket-js - один из таких примеров. Тем не менее, вы подвергаетесь тем же ограничениям, что и Flash Sockets, а именно, что ваш сервер должен иметь возможность выставлять междоменную политику по запросу на порт сокета, и часто возникают проблемы с прокси-серверами/брандмауэрами. (Flash-сокеты создаются напрямую, для кого-то, у кого нет прямого публичного доступа к IP-адресу, который может выйти из сети только через HTTP-прокси, они не будут работать.)
Если вам действительно нужна двусторонняя связь с низкой задержкой, вам лучше не вставлять XMLHttpRequest
пока.
Я думаю, что важно упомянуть, теперь, когда этот вопрос старше 1 года, Socket.IO с тех пор вышел и кажется быть основным способом работы с сокетами в браузере; насколько это возможно, он также совместим с Node.js.