2012-09-30 11 views
5

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

+4

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

Odpowiedz

1

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.

+0

Ok, dziękuję, myślisz, że http://www.codeproject.com/Articles/382561/Session- Management- in-Nodejs zrobi to dobrze? – Rayjax

+1

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 –

Powiązane problemy