2014-01-27 2 views
1

Node.js + socket.io를 기반으로 사용자 상호 작용 (데이터 송수신)이 가능한 웹 기반 시스템을 만들어야합니다. 나는 Node.js와 웹 소켓에 관한 많은 자료를 봤는데 다른 요구 사항에 따라 다른 프레임 워크와 기술을 사용하는 매우 다른 솔루션이있다.Node.js + socket.io 만들기 사용자 인증, 데이터 송수신을 통한 서버/클라이언트

하는 방법 라이브 유지 .. ('mysql을')를 사용자가 PHP 세션을 사용하여 자신을 인증 할 수 있으며, 직접 Node.js를를 사용하는 일부 사용자가 요구하는 곳과 같은 웹 기반 시스템을 구축하는 좋은하고 효과적인 솔루션을 추천 해주십시오 사용자 인증 후 Node.js + socket.io와 세션을 동기화하고 브라우저 창이 예기치 않게 닫히더라도 업데이트 된 라이브 결과를 유지 하시겠습니까?

데이터 배열 또는 변경된 데이터 키 값을 한 사용자에서 다른 사용자에게 보내거나받는 방법 및 관리자에게서 지정된 사용자 그룹에게만 데이터를 보내는 방법은 무엇입니까?

유사한 웹 기반 시스템 요구 사항에 대한 사용자의 경험에 따라 일부 정보 및/또는 링크를 제공해주십시오.

도움과 인내심에 미리 감사드립니다.

답변

0

당신은 실제로 당신이 Node.js를, Socket.IO, 세션 소켓, 레디 스를 사용하여 순수하게 기술하고 (내 생각) 무엇을 구축하고,

http://passportjs.org/가에서 사용자 로그인을 수행하는 훌륭한 라이브러리입니다 passport.js 수 Node.JS

http://redis.io/topics/quickstart은 세션 소켓과 함께 세션 소켓으로 사용할 수 있습니다. 세션 저장소를 사용하면 세션 저장소가 활성화되어있는 동안 브라우저 창을 닫으면 사용자 세션이 삭제되지 않습니다. 세션 저장소를 종료하거나 세션을 파괴하거나 세션 저장소를 구성하여 잠시 후 자동으로 세션을 삭제해야합니다.

특정 사용자에게 socket.io 소켓을 통해 메시지를 보내려면 해당 소켓을 저장할 수 있습니다 처음 연결할 때. 그것은 당신이 특정 소켓에 연결할 때마다, 당신은 물론이

 
storedSockets[socket_id_of_required_socket].emit("testing", {}) 

처럼 storedSockets를 통해 액세스 할 수있는 지금이

 
var storedSockets = {} 
io.socket.on("connection", function (socket) { 
    storedSockets[socket.id] = socket 
}) 

처럼 보일 것입니다, 당신은 소켓 ID를 저장해야 어딘가에 안전하고 원하는 것을 검색 할 수있는 확실한 방법이 있습니다. 예를 들어 데이터베이스에 Users 테이블이있는 경우 각 사용자 소켓 ID를 해당 레코드와 함께 저장할 수 있습니다. 그룹의 경우 그룹에 속한 모든 사용자를 찾고 나머지 하나는 소켓을 검색하여 메시지를 보냅니다.