Socket.IO, itp. Wszystkie wymagają korzystania z przeglądarki po stronie klienta .... zastanawiam się, jak możemy mieć browserless websocket client dla node.js?Czy istnieje klient przeglądarki internetowej bez przeglądarki internetowej dla Node.js, który nie musi korzystać z przeglądarki?
Odpowiedz
Serwer Node.js nie jest w żaden sposób związany z przeglądarką internetową jako klient. Każdy program może korzystać z biblioteki gniazd dostarczanej przez jej biblioteki pomocnicze w celu nawiązania połączenia z serwerem Node.js.
EDIT
odpowiedzi na Twój komentarz: nie zapominaj, że node.js jest Javascript! Jeśli chcesz okresowo uruchamiać kod - w bardzo podobny sposób, jak może to być proces demona - możesz użyć setInterval, aby uruchomić wywołanie zwrotne co każde millisekundy. Powinieneś być w stanie to zrobić bezpośrednio w twoim programie węzła.
Remy Sharp (@rem) napisał implementację klienta Socket.io, która działa na serwerze. Myślę, że to jest to, czego szukasz: https://github.com/remy/Socket.io-node-client
Socket.io-node-client nie jest implementacją "browserless websocket", jest to podkładka, która umożliwia komunikację klienta "browserless socket.io". specjalnie poprosił o "weblessocket bez przeglądarki". Socket.io-node-client korzysta z implementacji webSocket klienta test socket.io, która obsługuje starą wersję roboczą WebSocket hixie 75/76; nie jest (obecnie) emulowany obiekt WebSocket używany obecnie przez współczesne przeglądarki, więc nie jest odpowiedni do użytku jako ogólna implementacja "przeglądarki bez przeglądarki". Ani klient Socket.io-node-client, ani webSocket klienta test.io nie są właściwym wyborem. –
Nie dbam o niuanse "przeglądarki bez przeglądarki" w porównaniu z "browserless socket.io", po prostu chcę nieczytelnego sposobu komunikowania się między dwoma procesami node.js i wydaje się, że pasuje to do rachunku. – ColinM
Aktualny Rekomendacji
Korzystanie websocket-Node z mojego kodu otoki (patrz niżej). W chwili pisania tego artykułu żaden inny projekt publiczny nie jest zgodny z nową specyfikacją hybi, więc jeśli chcesz emulować aktualne wersje przeglądarek, potrzebujesz WebSocket-Node. Jeśli chcesz emulować starsze przeglądarki, takie jak mobilna przeglądarka Safari na iOS 4.2, będziesz potrzebować również jednej z innych bibliotek wymienionych poniżej, ale będziesz musiał samodzielnie zarządzać zdarzeniami związanymi z nazwą obiektu "WebSocket".
Wyświetlana jest lista publicznych wdrożeń klienta WebSocket dla pliku node.js.
Socket.IO
socket.io klient-test realizacja websocket robi hixie projekt 75/76, ale jak to pisze, nie hybi 7+.
https://github.com/LearnBoost/socket.io/blob/master/support/node-websocket-client/lib/websocket.js
Pytam, czy zamierzają zaktualizować do hybi 7+: http://groups.google.com/group/socket_io/browse_thread/thread/d27320502109d0be
Node-websocket-Client
Petera Griessa jest "węzeł-websocket-client" robi hixie szkic 75/76, ale od tego pisania nie hybi 7+.
https://github.com/pgriess/node-websocket-client/blob/master/lib/websocket.js
websocket-Node
Brian McKelvey za websocket-węzeł ma implementację klienta dla hybi 7-17 (protokół wersji 7-13), ale realizacja nie zapewnia przeglądarki stylu Obiekt WebSocket.
https://github.com/Worlize/WebSocket-Node
Oto kod wrapper używam naśladować obiektu przeglądarka stylu websocket:
/**
* Wrapper for Worlize WebSocketNode to emulate the browser WebSocket object.
*/
var WebSocketClient = require('./WorlizeWebSocketNode/lib/websocket').client;
exports.WebSocket = function (uri) {
var self = this;
this.connection = null;
this.socket = new WebSocketClient();
this.socket.on('connect', function (connection) {
self.connection = connection;
connection.on('error', function (error) {
self.onerror();
});
connection.on('close', function() {
self.onclose();
});
connection.on('message', function (message) {
if (message.type === 'utf8') {
self.onmessage({data:message.utf8Data});
}
});
self.onopen();
});
this.socket.connect(uri);
}
exports.WebSocket.prototype.send = function (data) {
this.connection.sendUTF(data);
}
SockJS
tylko w celach informacyjnych, Marek Majkowskiego SockJS robi nie obejmują klienta węzła. Biblioteka klienta SockJS to po prostu wrapper domena przeglądarki.
Po prostu przeszedł to, muszę polecić: https://github.com/Worlize/WebSocket-Node Ze względu na to doskonała dokumentacja.
https://github.com/einaros/ws zajmuje blisko sekundę.
Obie są aktywne i aktualizowane w tej chwili.
Teraz (w październiku 2012) zalecany sposób to zrobić jest użycie biblioteki socket.io-klient, który jest dostępny na https://github.com/LearnBoost/socket.io-client
- 1. Czy można użyć przeglądarki internetowej bez pakowania?
- 2. Uwierzytelnianie interfejsu API Soundcloud bez przeglądarki internetowej
- 3. Czy mogę zabronić autouzupełniania przeglądarki internetowej?
- 4. Szyny - CSS nie załadowany do przeglądarki internetowej
- 5. Dodatek do przeglądarki Firefox z witryny internetowej
- 6. Uzyskaj lokalizację GPS z przeglądarki internetowej
- 7. Ładowanie zasobu Androida do przeglądarki internetowej
- 8. Uruchom serwer notebook IPython bez uruchamiania przeglądarki internetowej?
- 9. Czy mogę powiązać HTML z formantem przeglądarki internetowej WPF?
- 10. Jak kliknąć przycisk w kontrolce przeglądarki internetowej?
- 11. Uruchamianie aplikacji Electron ze standardowej przeglądarki internetowej
- 12. Pierwsze ciasteczka przeglądarki internetowej do zalogowania
- 13. Jak uruchomić kątomierz za pomocą przeglądarki internetowej?
- 14. Potrzebuję przeglądarki internetowej w mojej aplikacji komputerowej
- 15. Jak programowo usuwać pliki cookie przeglądarki internetowej?
- 16. Jak pobrać plik przy użyciu VBA (bez przeglądarki internetowej)
- 17. Korzystanie z kamery internetowej przy użyciu przeglądarki Internet Explorer
- 18. Nie można wybrać opcji w widoku z przeglądarki internetowej
- 19. Jak wprowadzić API zdefiniowane przez gRPC do przeglądarki internetowej?
- 20. Czy można wykonać migawkę sterty za pomocą przeglądarki internetowej Safari?
- 21. Nie można uzyskać lokalnej roli przeglądarki internetowej za pomocą emulatora
- 22. android - Jak wykonać połączenie telefoniczne z poziomu przeglądarki internetowej
- 23. Żądanie adresu URL przeglądarki internetowej z ciągiem zapytań
- 24. chrome.webrequest.onbeforerequest.addlistener dla przeglądarki Firefox?
- 25. Czy istnieje sposób zmiany paska adresu przeglądarki bez odświeżania strony?
- 26. Alternatywa dla korzystania z przeglądarki internetowej dla Google Earth bez włączenia usługi Google Play
- 27. 403 Zabrania się używania Javy, ale nie przeglądarki internetowej?
- 28. Testowanie Selenium bez przeglądarki
- 29. Śledzenie zaznaczania tekstu w widoku z przeglądarki internetowej
- 30. Dezaktywuj długie kliknięcie w widoku z przeglądarki internetowej
Tak, mam serwer node.js działa .... I po prostu chcę być w stanie uzyskać aktualizację w czasie rzeczywistym na moim kliencie za pomocą websocket bez korzystania z przeglądarki po stronie klienta .... w zasadzie chcę mieć proces demona klienta, który nasłuchuje na wiadomości push w czasie rzeczywistym z mojego serwera node.js. .. Używam węzła po stronie klienta również ... Jednak nie jestem pewien, jak uczynić proces węzła deamon .... węzeł nie blokuje .... podczas gdy ja teraz pytam klienta do blokowania (while pętla na sock.onmessage). – haijin
@haijin: odpowiedział na ciebie komentarz w mojej odpowiedzi –
Znalazłem websock python lib, który pracował dobrze dla mojego przypadku..Dobre. http://freeasinbeard.org/post/1008785379/python-websocket-a-websocket-client-library-for – haijin