Pracuję nad SPA (pojedyncza strona internetowa); Chodziło o to, aby iść na lekki i nie używać zbyt wielu frameworków i abstrakcji, więc utworzyłem serwer HTTP dla plików statycznych + dynamicznych i działa dobrze. Teraz zaimplementowałem socket.io w aplikacji internetowej, ale chciałbym wiedzieć, co według Ciebie byłoby dobrym sposobem na obsługę sesji (pamiętając, że gniazdo io musi być w stanie zidentyfikować użytkownika, który dzwoni do funkcji i wie kto musi przesyłać dane). nadzieję, że już wystarczająco jasne :)Jak obsługiwać sesje w węźle node.js bez frameworków
Odpowiedz
Socket.io został zbudowany w sposobach zapisywania danych sesji po stronie serwera dla danego gniazda poprzez socket.get
, socket.set
i socket.del
. Tam, gdzie zapisywane są te dane, domyślnie jest to magazyn pamięci, ale możesz używać redis, itp. Pamiętaj, że gdy gniazdo się rozłączy, dane te nie będą się powtarzać po ponownym połączeniu, więc będziesz chciał przesłać dane identyfikujące klienta zdarzenia konfiguracji gniazd lub podczas autoryzacji.
Pozostawia to dane klienta, które mogą być utrwalane między innymi za pomocą localStorage, sessionStorage lub zwykłych starych ciasteczek waniliowych.
Ok, dziękuję, myślisz, że http://www.codeproject.com/Articles/382561/Session- Management- in-Nodejs zrobi to dobrze? – Rayjax
To trochę przesada, ale nie znam twojego przypadku użycia. Zachęcam Cię do przetestowania własnego podstawowego rozwiązania przed dodaniem innego modułu, jeśli chcesz zachować lekkość: https://github.com/learnboost/socket.io#storing-data-associated-toa-a- klient –
- 1. node.js ekspresowe sesje ajaxowe
- 2. Sesje nie będą zapisywane w pliku Node.js bez req.session.save()
- 3. jak rozwiązać problem w węźle node.js
- 4. Uruchamianie witryny django w środowisku multiserver - jak obsługiwać sesje?
- 5. Serwer proxy HTTPS w węźle node.js
- 6. Zdarzenie typu "onscroll" JavaScript samodzielnie (bez frameworków)
- 7. Jak utworzyć katalog tmp w węźle bez kolizji
- 8. Jak ponownie wykorzystać połączenie mongodb w węźle node.js
- 9. Uruchamianie wielu witryn na węźle node.js
- 10. Autoryzacja klienta SSL na węźle node.js
- 11. Niezdefiniowany symbol na węźle node.js addon
- 12. Data toLocaleDateString w węźle
- 13. Separacja serwera plików i logiki socket.io w węźle node.js
- 14. Jak wyśmiewać MySQL (bez ORM) w Node.js?
- 15. Jak przedstawiać sesje w formacie api blueprint?
- 16. Jak obsługiwać przejściówkę bez podsłuchiwania przeglądarki?
- 17. Uruchamianie pliku node.js bez dzienników automatycznych
- 18. Wybór frameworków testowania iOS
- 19. Jak obsługiwać asyncore w klasie w python, bez blokowania czegokolwiek?
- 20. Zapisywanie w pliku tekstowym bez nadpisywania w węźle fs js
- 21. Struktura testowania jednostkowego na węźle node.js z mangustą
- 22. node.js-http: nasłuchuj na lokalnym węźle/gnieździe unixowym
- 23. Jak debugować szablony EJS w węźle/Express
- 24. Jak obsługiwać wyliczenia bez pól wyliczeniowych w bazie danych?
- 25. Jak obsługiwać duże obrazy w programie Matlab bez wyczerpania pamięci?
- 26. Sesje w PHP 7
- 27. Sesje w ZF2
- 28. Różnica między modułem a pakietem w węźle?
- 29. Jak utworzyć post https w węźle Node Js bez modułu zewnętrznego?
- 30. pagerjs newbie - używanie bez node.js?
Ponowne wdrożenie istniejących rozwiązań nie powoduje, że aplikacja jest lekka. Ramy takie jak [Connect] (http://www.senchalabs.org/connect/) są już całkiem lekkie. – lanzz