Odpowiedzi:
Możesz to zrobić bardzo łatwo za pomocą:
Połącz: http://senchalabs.github.com/connect/
Connects jest jak Rack in Ruby. Daje Ci dodatkową warstwę, na której możesz „bawić się” między innymi uwierzytelnianiem, sesjami, plikami cookie.
Inną opcją jest użycie frameworków:
Express.js: http://expressjs.com/
Wydaje się, że jest to najczęściej używany framework node.js. Jest jak Sinatra dla Rubiego i działa na wierzchu connect.
Geddy: http://geddyjs.org/
Jeśli chcesz tworzyć bardziej złożone aplikacje internetowe, wybierz Geddy. Jest jak Rails for Ruby.
Po prostu wyładuj go do memcache lub innego mechanizmu buforowania. Nie obciążałbym waszych serwerów takimi rzeczami. Jaki jest sens super odchudzonego serwera internetowego, który musi pamiętać o rzeczach.
Spróbowałbym również rozwinąć twoją witrynę jako aplikację, a nie witrynę internetową, lub traktować twoją witrynę jako aplikację, wykorzystać wspaniałe funkcje html5, takie jak lokalna pamięć / lokalne bazy danych i zmniejszyć ilość ruchu między serwerem a maszynami klienckimi .
Jeśli wszystko inne zawiedzie (lub witryna jest mała), to co powstrzymuje cię przed napisaniem własnej klasy sesji. Nie jest to trudne. Zwłaszcza jeśli jest to coś w rodzaju pamięci. Umieść trochę logiki timera, aby wygasić sesje i gotowe. Cholera w dynamicznym języku, takim jak JavaScript, powinno być pestką.
Struktura powinna być słownikiem, w którym kluczem jest sesja, a wartością jest obiekt zawierający szczegóły ostatniej komunikacji i możliwości (aby umożliwić dostęp do niektórych funkcji). Dodaj funkcję czyszczenia, aby usunąć stare sesje, które wygasły. i bingo. Podstawowa usługa sesji. podstawowe sprawdzenie „czy klucz sesji jest na liście… tak / nie… zdobądź szczegóły”… i myślę, że to wszystko… lub czy brakuje mi jakiejś funkcji.
Osobiście unikałbym wszelkich narzędzi innych firm tak długo, jak to możliwe. Piaski czasu przesuwają się bardzo szybko i zawsze możesz polegać na kodzie stworzonym przez siebie.
nodejs udostępnia podstawowe API http. Protokół http jest bezstanowy, a pomysły dotyczące sesji i zmiennych sesji istnieją we frameworku / protokołach zbudowanych na podstawie http. http://en.wikipedia.org/wiki/Session_%28computer_science%29
Spójrz na http://geddyjs.org/ lub http://expressjs.com/ jako przykłady struktur internetowych zbudowanych z węzłem, które zapewniają sesje.
Odpowiedź Donalda jest dobra - kiedy już znajdziesz się we wzorcu oprogramowania pośredniego połączenia, musisz podjąć decyzję, jakiego typu magazynu sesji użyć. Domyślny w Express to MemoryStore i nie jest przeznaczony do użytku produkcyjnego. Oto niektóre z dostępnych opcji:
Mongo https://github.com/mikkel/express-session-mongo - pamiętaj, aby użyć opcji „native_parser: false”
Redis https://github.com/visionmedia/connect-redis - Bardzo dobrze, ale jeśli nie używasz jeszcze redis do pub / sub lub przechowywania, może nie być idealny.
Uwaga, są inne możliwości - to zależy od twojego projektu. Poszukaj czegoś, co możesz wprowadzić, wykorzystując istniejący stos technologii.
Jeśli szukasz poważnego programu do tworzenia stron internetowych przy użyciu Node.js, użyj frameworka Express ; obsługuje sesje.
Utwórz projekt Express z opcjami --sessions.
$ express --sessions
Aby zainstalować Express:
$ npm install express -g
cookie-sessiondo swojej package.josnpracy.