2011-04-11 2 views
0

나는 XMPP을 strope.js와 openfire와 함께 사용하고 있습니다. 나는 방에 이미있는 모든 멤버를 얻는 방법에 대한 질문을 가지고 있습니까 ???XMPP MUC 문제

더보기 : 페이지를 새로 고침하고 내 존재 연을 방으로 보냅니다. 나는 방에서 내 존재를 얻었고 나는 방을 합류했다. 그러나 이미 방에있는 모든 사람들의 presence stanza을 얻는 방법.

편집 :

나 경우에 의해 당신을 설명하게하는을 가정하고 B는 그룹 채팅 원한다. 처음 A는 방으로 들어가고 방에서 자신을 본다. 그러면 B가 방에 들어서 A가 B의 존재 연을 얻습니다. 그리고 A면에 A와 B가 방에 있습니다. 하지만 B 쪽에서는 방에 B 만 나타납니다.

이제 A가 페이지를 새로 고치고 B가 현재 스탠자를 얻습니다. 이제 B면 모두가 방에 있지만 A면에서는 A 만 방에 있습니다.

+1

당 XMPP 사양을하는 데 도움이, 서버는 기존의 모든 거주자 '방 JID를에서 현존를 다시 전송해야 새로운 거주자. (http://xmpp.org/extensions/xep-0045.html#enter-pres) 그것은 자신의 존재 "echo"로 즉시 돌아 오지 않을 수도 있지만 아마 2 번이나 그 요청을 받게 될 것입니다. 방을 완전히 통과하셨습니까? 다른 거주자가받은 방에 보낸 메시지가 있습니까? 명심하십시오 : 서버는 서버의 전체 JID가 아닌 다른 탑승자의 방 JID 만 되돌려 보낼 것입니다. – DashK

+0

예. 성공적으로 방에 들어 왔습니다. 그리고 그 메시지는 다른 탑승자들에게도 전달됩니다. 문제는 내가 방안에있을 때 다른 거주자가 들어 와서 존재감을 얻었을 때 나는 리프레시 될 때 방안에 홀로있게된다. – jimy

+0

새로 고침 할 때 동일한 SID를 사용하여 다시 연결하고 있습니까? 또는 새 연결을 사용하여 Jabber에 다시 연결 하시겠습니까? – DashK

답변

1

Openfire가 프레즌스를 룸의 모든 점유자에게 보내면 스트로브에 이벤트 처리기를 프리젠 스 스탠자에 추가하기 만하면됩니다. 또한 신입 회원이 방에 들어 오면 방에있는 모든 회원에게 이미 그 방의 존재가 방송됩니다.

는 또한 방에있는 모든 사용자를 얻을 수있는 또 다른 방법은 실내의 명부를 조회하는 것입니다

희망이