Jak korzystać z gniazd w JavaScript \ HTML?
Może korzystasz z fajnego HTML5?
Biblioteki? Poradniki? Artykuły na blogu?
javascript
html
websocket
Rella
źródło
źródło
Odpowiedzi:
Specyfikacje:
Artykuły:
Instruktaż:
Biblioteki:
źródło
bobince
zapewniła prosty poradnik na tej stronie: PNie ma możliwości używania gniazd ogólnego przeznaczenia w JS lub HTML. Po pierwsze, byłaby to katastrofa bezpieczeństwa.
W HTML5 jest WebSocket. Strona klienta jest dość trywialna:
socket= new WebSocket('ws://www.example.com:8000/somesocket'); socket.onopen= function() { socket.send('hello'); }; socket.onmessage= function(s) { alert('got reply '+s); };
Będziesz potrzebował wyspecjalizowanej aplikacji używającej gniazd po stronie serwera, aby przejmować połączenia i coś z nimi robić; nie jest to coś, co normalnie robisz z poziomu interfejsu skryptowego serwera WWW. Jednak jest to stosunkowo prosty protokół ; mój punkt końcowy oparty na Pythonie SocketServer miał tylko kilka stron kodu.
W każdym razie tak naprawdę jeszcze nie istnieje. Ani specyfikacja po stronie JavaScript, ani specyfikacja transportu sieciowego nie są ustalone i żadna przeglądarka jej nie obsługuje.
Możesz jednak użyć Flasha, jeśli to możliwe, aby zapewnić skryptowi rezerwę, dopóki WebSocket nie będzie powszechnie dostępny. Jednym z bezpłatnych przykładów takiego rozwiązania jest web-socket-js firmy Gimite . Jednak podlegasz wtedy takim samym ograniczeniom jak Flash Sockets, a mianowicie, że Twój serwer musi być w stanie wypluć politykę międzydomenową na żądanie do portu gniazda i często będziesz mieć problemy z serwerami proxy / zaporami ogniowymi. (Gniazda Flash są tworzone bezpośrednio; dla kogoś bez bezpośredniego dostępu do publicznego adresu IP, który może wyjść z sieci tylko przez serwer proxy HTTP, nie będą działać).
O ile naprawdę nie potrzebujesz dwukierunkowej komunikacji o niskim opóźnieniu, na razie lepiej się trzymaj
XMLHttpRequest
.źródło
Myślę, że ważne jest, aby wspomnieć, teraz, gdy to pytanie ma ponad rok, że Socket.IO od tego czasu się pojawił i wydaje się być teraz podstawowym sposobem pracy z gniazdami w przeglądarce; o ile wiem, jest również kompatybilny z Node.js.
źródło