2011-02-09 4 views
0

선택한 사용자 그룹에게 socket.io-node를 사용하여 데이터를 보낼 수 있습니까? 예를 들어, 다른 방과 채팅을 어떻게 구현할 수 있습니까? 나는 .broadcast()가 로그인 한 모든 사용자에게 데이터를 보내지 못하게한다.Socket.io-node를 사용하여 선택한 사용자에게만 데이터 보내기

+0

http://stackoverflow.com/questions/4445883/node-websocket-server-possible-to-have-multiple-separate-broadcasts-for-a-sin –

답변

3

일반적으로 각 방에는 연결된 사용자 목록이 있어야하며 해당 사용자는 모두 client 개체를 가지고 있어야합니다. 따라서 특정 방으로 메시지를 보내려는 경우 해당 방의 연결된 사용자를 반복하고 객체 인 client에 액세스하여 데이터를 보내면됩니다.

요약하면 그룹의 각 사용자에게 데이터를 하나씩 보내면됩니다. roomName 어떤을 어디 통과 얻을 같은 새로운 사용자가 연결할 때

1

socket.io는 단일 연결 소켓 객체에

에 내장 그룹화 기능을 가지고, 당신은 ('roomName') .join 호출 할 수 있습니다 "room"을 식별하는 데 사용하려는 문자열 인 경우 "profile/14"와 같은 회의실 이름을 사용하여 사용자 # 14 프로필의 업데이트 채널을 만들 수 있습니다.() 메시지는 .join 모든 연결에 꺼집니다

io.sockets.in('profile/14').emit('newComment', {message:'hello'}); 

주어진 방을 거라고 :

그런 다음 주 IO 객체에 그런 짓을.

일반적으로 내 클라이언트는 "hello"이벤트에 대한 내 처리기가 클라이언트가 구독하고자하는 콘텐츠를 식별하는 "hello"이벤트 onConnect를 내 보낸 다음 서버 측에서 처리합니다. 필요한 모든 방에 클라이언트를 넣으십시오.

관련 문제