NodeJS 다 중 프로 세 스 가 실 행 된 후 socket. io 는 어떻게 사용 해 야 합 니까?노드 단일 프로 세 스 때 와 같 습 니까?

4299 단어 nodejs
다 중 프로 세 스 가 node 를 실행 할 때 프로 세 스 간 변 수 는 공유 되 지 않 습 니 다. 사용자 가 길 을 요청 하면 무 작위 프로 세 스 로 처 리 됩 니 다.
socket. io 에서 기본적으로 사용 하 는 메모리 저장 소 입 니 다. 우리 가 정의 하 는 socket. io 이 벤트 는 현재 프로 세 스 로 제 한 됩 니 다.
다 중 프로 세 스 socket. io 의 정상 적 인 사용 을 위해 서 는 지속 적 인 저장 이 필요 합 니 다. socket. io 는 RedisStore 저장 을 지원 하거나 인 터 페 이 스 를 통 해 파일 저장 이나 mongodb 저장 등 을 연구 해 야 합 니 다.
 
io.set('store', redisStore);

만약 에 저희 가 RedisStore 저장 소 를 사용 하면 클 라 이언 트 가 연결 한 후에 join 명령 을 사용 하여 현재 연결 을 username 의 방 에 들 어가 면 사용자 가 N 개의 브 라 우 저 창 을 동시에 열 어도 실시 간 으로 알림 상태 와 실시 간 으로 상 태 를 바 꿀 수 있 습 니 다.
 
 
io.sockets.on('connection',function(socket){//           ,        
    socket.join(username);});

클 라 이언 트 에 데이터 보 내기
 
 
io.sockets.in(username).emit('notify num', count);
io.sockets.emit('online', username);

후 자 는 모든 연 결 된 클 라 이언 트 에 게 데 이 터 를 보 내 고 전 자 는 username 방 의 연결 에 만 데 이 터 를 보 냅 니 다 (자신 포함).
 
또 하나의 데 이 터 를 보 내 는 방식 은 방송 (broadcast) 으로 방 안에 자신 을 제외 한 모든 연결 에 데 이 터 를 보 내 는 것 이다.
 
socket.broadcast.emit("data ....");

서버 단일 프로 세 스 든 다 중 프로 세 스 든 클 라 이언 트 의 코드 작성 방식 은 똑 같 습 니 다. 이것 은 클 라 이언 트 에 게 투명 합 니 다.

좋은 웹페이지 즐겨찾기