Jak korzystać z gniazd w JavaScript \ HTML?
Może korzystasz z fajnego HTML5?
Biblioteki? Poradniki? Artykuły na blogu?
Jak korzystać z gniazd w JavaScript \ HTML?
Może korzystasz z fajnego HTML5?
Biblioteki? Poradniki? Artykuły na blogu?
Odpowiedzi:
Specyfikacje:
Artykuły:
Instruktaż:
Biblioteki:
bobince
zapewniła prosty poradnik na tej stronie: P
Jak korzystać z gniazd w JavaScript / HTML?
Nie 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
.