Tak więc ostatnio próbowałem zrozumieć Socket.io, ale nie jestem superprogramistą i prawie każdy przykład, który mogę znaleźć w sieci (wierz mi, szukałem przez wiele godzin), ma dodatkowe rzeczy, które komplikują sprawę. Wiele przykładów robi wiele rzeczy, które mnie dezorientują, lub łączą się z jakąś dziwną bazą danych lub używają coffeescript lub ton bibliotek JS, które zagracają wszystko.
Chciałbym zobaczyć podstawowy, działający przykład, w którym serwer po prostu wysyła wiadomość do klienta co 10 sekund, mówiąc, która jest godzina, a klient zapisuje te dane na stronie lub generuje alert, coś bardzo prostego. Potem mogę stamtąd coś wymyślić, dodać rzeczy, których potrzebuję, takie jak połączenia db itp. I tak, sprawdziłem przykłady na stronie socket.io i nie działają one dla mnie i nie rozumiem, co robią .
Odpowiedzi:
Edycja: Uważam, że dla każdego lepiej jest zapoznać się z doskonałym przykładem czatu na stronie wprowadzającej do Socket.IO. API zostało dość uproszczone, odkąd podałem tę odpowiedź. Biorąc to pod uwagę, oto oryginalna odpowiedź zaktualizowana mała-mała dla nowszego interfejsu API.
Tylko dlatego, że czuję się dzisiaj dobrze:
index.html
app.js
źródło
Oto moje zgłoszenie!
jeśli umieścisz ten kod w pliku o nazwie hello.js i uruchomisz go za pomocą węzła hello.js, powinien wydrukować wiadomość hello, została wysłana przez 2 gniazda.
Kod pokazuje, jak obsługiwać zmienne wiadomości hello odsyłanej z klienta na serwer za pośrednictwem sekcji kodu oznaczonej // Mirror.
Nazwy zmiennych są deklarowane lokalnie, a nie wszystkie u góry, ponieważ są używane tylko w każdej sekcji między komentarzami. Każdy z nich może znajdować się w osobnym pliku i działać jako własny węzeł.
źródło
Może to też może ci pomóc. Miałem problemy z owinięciem głowy wokół tego, jak działa socket.io, więc starałem się ugotować przykład tak bardzo, jak tylko mogłem.
Zaadaptowałem ten przykład z przykładu zamieszczonego tutaj: http://socket.io/get-started/chat/
Najpierw zacznij od pustego katalogu i utwórz bardzo prosty plik o nazwie package.json Umieść w nim następujące elementy.
Następnie w wierszu poleceń użyj npm, aby zainstalować zależności, których potrzebujemy w tym przykładzie
Może to zająć kilka minut, w zależności od szybkości połączenia sieciowego / procesora / itp. Aby sprawdzić, czy wszystko poszło zgodnie z planem, możesz ponownie spojrzeć na plik package.json .
Utwórz plik o nazwie server.js Będzie to oczywiście nasz serwer obsługiwany przez węzeł. Umieść w nim następujący kod:
Utwórz ostatni plik o nazwie index.html i umieść w nim następujący kod.
Możesz teraz przetestować ten bardzo prosty przykład i zobaczyć wyniki podobne do następujących:
Jeśli otworzysz przeglądarkę internetową i wskażesz ją na nazwę hosta, na którym uruchamiasz proces węzła, w przeglądarce powinny pojawić się te same liczby, wraz z każdą inną podłączoną przeglądarką przeglądającą tę samą stronę.
źródło
zdaję sobie sprawę, że ten post ma już kilka lat, ale czasami certyfikowani nowicjusze, tacy jak ja, potrzebują praktycznego przykładu, który jest całkowicie okrojony do absolutnie najprostszej formy.
każdy prosty przykład socket.io, jaki mogłem znaleźć, dotyczył http.createServer (). ale co, jeśli chcesz dołączyć odrobinę magii socket.io na istniejącej stronie internetowej? oto absolutnie najłatwiejszy i najmniejszy przykład, jaki mogłem wymyślić.
to po prostu zwraca ciąg przekazany z konsoli WIELKIMI LITERAMI.
app.js
index.html:
biegać:
użyj czegoś takiego jak ten test portu, aby upewnić się, że port jest otwarty.
teraz przejdź do http: //localhost/index.html i użyj konsoli przeglądarki do wysyłania wiadomości z powrotem na serwer.
w najlepszym przypadku, gdy używasz http.createServer, zmienia dla ciebie następujące dwie linie:
Mam nadzieję, że ten bardzo prosty przykład oszczędzi moim kolegom trochę zmagań. i proszę zauważyć, że trzymałem się z daleka od używania w definicjach gniazd nazw zmiennych wyglądających na „zastrzeżone słowo”.
źródło
every simple socket.io example i could find involved http.createServer(). but what if you want to include a bit of socket.io magic in an existing webpage
mhm tak ...var app = http.createServer(
- wutindex.html
index.js
I uruchomić te polecenia do uruchomienia aplikacji.
i otwórz adres URL: -
http://127.0.0.1:3000/
Port może być inny. i zobaczysz to WYJŚCIEźródło