2012-07-05 4 views
1

iOS 용 TCP 기반 게임 서버를 만들고 있는데 등록 및 로그인이 필요합니다. 사용자는 MongoDB에 모음으로 저장됩니다. 로그인이 완료되면 고유 한 세션 ID가 생성됩니다. - ?MongoDB에서 nodeJS TCP 서버를 사용하여 세션을 구현하는 방법은 무엇입니까?

모든 데이터가 노드 서버에 남아 있고 db에 저장할 수있는 정보가 무엇인지 알고 싶었습니다. 세션 토큰과 같은 데이터 또는 지속적인 연결을 유지하는 경우 소켓 수집.

답변

2

Node.JS에는 기본적으로 세션이 없습니다. 실제로 plug-in for managing sessions with MongoDB이 있습니다.

세션이 실제로 필요하다는 것은 확실하지 않습니다. socket.io를 사용하여 직접 소켓을 여는 경우 이는 사실 세션입니다.

+0

내가 HTTP 기반 통신으로 이동하는 경우에 대비하여 사용자 추적이 필요합니다. 소켓을 사용하고 있다면 전혀 문제가되지 않습니다. –

0

Node.js는 자체 세션을 관리하지 않습니다. 소켓 통신을위한 기본 유닉스 시설에 API를 간단하게 공개합니다. HTTP는 자체적으로 상태 비 저장 프로토콜이며 세션도 없습니다. SSH는 다른 한편으로는 상태 유지 프로토콜이지만 어느 것이 든 당신에게 좋을 것이라고는 생각하지 않습니다.

uniuqe ID를 만드는 것은 매우 간단합니다. 사용자에 대한 데이터를 해시하기 만하면됩니다. 그들의 SHA(IP address + time + username). 참조 : http://nodejs.org/api/crypto.html

많은 응용 프로그램이 취하는 한 가지 방법은 자체 프로토콜을 만들고이를 사용하여 메시지를 보내는 것입니다. 당신은 그것으로 많은 경우를 다루어야 할 것입니다. 그리고 나 자신은 심각한 연결 문제와 데스크톱에서 큰 문제가 아닌 캐싱 요구 사항이있는 모바일을 다루지 않았습니다.

이 문제를 해결하기 위해 Scribd의 설립자는 Parse라는 회사를 시작했습니다. Parse라는 회사가 훨씬 쉽게 작업을 수행해야합니다. 그들의 웹 사이트 : https://parse.com/을보십시오.

그러나 일부 인증을 원할 경우 Everyauth를 살펴보면 많은 이점이 있습니다. 여기에서 찾으실 수 있습니다 : https://github.com/bnoguchi/everyauth/.

관련 문제