Як використовувати сокети в JavaScript \ HTML?
Можливо, ви використовуєте якийсь класний HTML5?
Бібліотеки? Підручники? Статті в блозі?
Як використовувати сокети в JavaScript \ HTML?
Можливо, ви використовуєте якийсь класний HTML5?
Бібліотеки? Підручники? Статті в блозі?
Відповіді:
Технічні характеристики:
Статті:
Підручник:
Бібліотеки:
bobince
надано простий підручник на цій сторінці: P
Як використовувати сокети в 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 від Gimite - один із безкоштовних прикладів такого. Однак на вас поширюються ті самі обмеження, що і Flash Sockets, а саме, що ваш сервер повинен мати можливість виписувати міждоменну політику на запит до порту сокета, і ви часто будете мати труднощі з проксі / брандмауерами. (Flash-розетки виготовляються безпосередньо; для тих, хто не має прямого загальнодоступного IP-доступу, хто може вийти з мережі лише через HTTP-проксі, вони не працюватимуть.)
Якщо вам насправді не потрібна двостороння комунікація з низькою затримкою, вам краще дотримуватися XMLHttpRequest
поки що.
Думаю, важливо згадати, що тепер, коли цьому питанню вже більше 1 року, Socket.IO з тих пір вийшов і, схоже, є основним способом роботи з сокетами в браузері; він також сумісний з Node.js , наскільки мені відомо.