2011-10-02 11 views
5

Zaczynam czytać o WebSocket, ale nie mogę znaleźć dobry serwer websocket i łatwo zaprogramować kilka przykładów ...łatwe do programu websocket Server

Jestem kompletnym nowicjuszem, a ja don Potrzebuję serwera obsługującego dużą współbieżność, po prostu chcę coś wypróbować kilka przykładów ...

Dowolna pomoc?

Dzięki!

+0

Co dokładnie chcesz zrobić? – bksi

+0

niektóre testy, takie jak czat, transmisja strumieniowa danych ... po prostu wypróbować websockets od strony klienta ... – Andres

+0

@bksi, to przykład jest serwerem gniazd. WebSockets to protokół z określonym handshake i ramkami danych. – kanaka

Odpowiedz

2

Należy pamiętać, że websockets to nowa technologia. Najnowszy projekt protokołu został właśnie złożony, aby stać się faktycznym standardem. Opera nawet nie obsługuje najnowszego protokołu, a Microsoft jest daleko w tyle (część implementacji jest dostępna w wersji 10 MSIE). Chrome obsługuje go w wersji rozwojowej. Firefox bardzo niedawno wydał swoją wersję 7, która ją obsługuje. Nie bądźcie zaskoczeni, jeśli chcecie stać się częścią "społeczności programistów" jako początkujący użytkownik, tj. Piąć się w kółko, gdy narzędzia stają się dojrzałe, a tutoriale są bardziej obfite.

Możesz obserwować my blog. Tworzę coś, co wydaje się być dokładnie tym, czego szukasz, i będzie rozpowszechniane bezpłatnie dla programistów. Czas może być dobry, mimo że nie jest jeszcze gotowy do dystrybucji. Zostanie zintegrowany z częściami tak zwanego szkieletu HLL, który ułatwi tworzenie aplikacji. Chciałbym również umożliwić rozwijanie komponentów aplikacji zaplecza za pomocą skryptów, w tym JavaScript. Zrobiłem już trochę pracy na ten temat w ramach HLL.Jest działająca demonstracja i można pobrać klienta dhtml/javascript, a wkrótce klienta innego niż przeglądarka, którego można również użyć do budowania komponentów aplikacji. Serwer zbudowany w Javie (Oracle) działa równie dobrze zarówno na Linuksie, jak i na Windowsie. Ponieważ zapewniałoby to również silnik skryptowy, komponenty aplikacji napisane w skrypcie również byłyby przenośne.

Serwer websocket obsługuje najnowszą wersję proponowanego protokołu, który został przedstawiony jako rzeczywisty standard websocket. Demo uruchomi się na kanale deweloperskim Chrome (znanym również jako Chromium) 14 lub nowszym. Również Firefox 7, który został wydany (już nie w wersji Beta).

+0

miła praca ... naprawdę ciekawa ... Jak trudno było zaprogramować uścisk dłoni? Ponieważ naprawdę zaczynam rozważać stworzenie własnego małego, bardzo prostego, małego serwera, ponieważ chcę tylko wysłać coś i odebrać go od klientów ... Nie potrzebuję wysokiej współbieżności ani czegoś takiego ... więc jak trudno było nawiązać połączenie? – Andres

+0

Możesz przeczytać moją odpowiedź na to pytanie, w odpowiedzi na moje własne pytanie, bardzo podobne do twojego, kiedy pierwszy raz zacząłem pracę na serwerze websocket: http://stackoverflow.com/questions/6122456/simple-java-javascript-start -on-websockets/7336944 # 7336944 –

+0

BTW: HLL (w tym serwer websocket) został zaprojektowany, aby być szybkim i lekkim. Utrzymałem to jako wymaganie przez cały czas. Ale będę też miał odpowiedź, gdy niektóre aplikacje wymagają skalowania w celu obsługi bardzo dużego obciążenia ruchem. (Nie jestem pewien, czy moja obecna wersja będzie, choć może nie przetestowana.) –

0

Jeśli chcesz mieć serwer WebSocket napisany w JavaScript niż sugeruję, spójrz na Socket.IO. Jest bardzo prosty w użyciu, a istnieje wiele dokumentacji i przykładów, które można znaleźć w Internecie.

Jeśli chcesz grać z niskopoziomowym serwerem WebSocket i JavaScript nie jest wymagany, możesz wypróbować mój projekt oparty na pythonie websockify. Moduł websocket.py jest ogólną strukturą serwera WebSocket. Istnieje kilka prostych przykładów użycia go w katalogu tests. Websockify sam jest zbudowany na websocket.py, aby stworzyć dość wyrafinowany websocket do raw socket bridge/proxy.

+0

'Socket.IO' to _nie_ serwer WebSocket - to ogólna biblioteka komunikacyjna gniazda sieciowego, która może korzystać z WebSockets jako _transport_, jeśli są one obsługiwane. – Alnitak

+0

@Alnitak. Właściwie Socket.IO ** to ** serwer WebSocket. Tak, to nie tylko serwer WebSocket (Apache to serwer WWW, mimo że można go skonfigurować do obsługi innych protokołów, takich jak FTP). I tak, możesz skonfigurować go tak, aby używał alternatywnych transportów jako awarie, ale domyślny/priorytetowy transport to WebSockets. Interfejs API jest podobny do API WebSockets (i na wiele sposobów oparty na nim), ale rozszerza go o zarządzanie sesjami i inne elementy. – kanaka

+0

To jest w pewnym sensie - musisz użyć specjalnego obiektu 'Socket.IO' po stronie klienta i jego API. To nie jest "czysty" WebSockets - nie można otworzyć adresu URL 'ws: //.../' bezpośrednio na serwerze 'Socket.IO' i oczekiwać, że standardowy interfejs WebSocket API będzie nad nim pracował. – Alnitak

0

Mam dobre wyniki z node.ws.js.

Należy jednak pamiętać, że jest (chwilowo) niezgodny z Chrome 14, ponieważ Chrome ma teraz zaimplementowaną najnowszą wersję specyfikacji IETF Hybi, a node.ws.js jeszcze się nie nadrobiło.

Działa to dobrze ze wszystkimi wersjami Safari, w tym z Mobile Safari.

+0

O ile mogę powiedzieć, node.js jest dość daleko w tyle za wsparciem dla zaktualizowanych protokołów. Prawdziwe? (hybi-6?) Opisywany jest również jako serwer http "zgodny z websocket", a nie serwer websocket. Nie jestem pewien co to znaczy. https://github.com/guille/node.websocket.js/ –

1

Najpopularniejszym kodem JavaScript po stronie serwera jest NodeJS, najlepiej działa na systemie Linux z wersją systemu Windows.

http://nodejs.org/

Postępuj zgodnie z instrukcjami instalacji tutaj:

https://github.com/joyent/node/wiki/Installation

Po zainstalowaniu węzła i NPM zainstalować pakiet socket.io:

npm install socket.io

Następnie odwiedź http://socket.io/ o wprowadzenie do API ponownie możesz zobaczyć JavaScript po stronie serwera i JavaScript po stronie klienta.

+0

ale problem z socket.io polega na tym, że używa specjalnego api od strony klienta, potrzebuję/chcę użyć standardowego ... – Andres

+0

Jako O ile wiem, node.js jest daleko w tyle pod względem obsługi zaktualizowanych protokołów. Prawdziwe? (hybi-6?) Opisywany jest również jako serwer http "zgodny z websocket", a nie serwer websocket. Nie jestem pewien co to znaczy. github.com/guille/node.websocket.js –

+0

nie ma bezpośredniego wsparcia dla WebSockets w samym pliku 'node.js' - wspomniana tutaj obsługa i w mojej odpowiedzi to biblioteki stron trzecich. – Alnitak

Powiązane problemy