2012-11-30 6 views
0

로스터 메커니즘에 문제가있어서 JSJaC javascript 라이브러리를 사용하고 있습니다.XMPP 로스터 출현

내 경우 :

사용자 A가 "모두"가입과 다른 사용자 B를 포함하는 간단한 명단이있다. 사용자 B는 동일한 구성을가집니다.

사용자 A가 openfire에 로깅되면 사용자의 친구 목록 (내 경우에는 사용자 B 만)을 반환하는 "getRoster()"함수를 호출하지만 사용자 B가 현재 있는지 확인할 수있는 방법 채팅 할 수 있습니까?

일부 존재 메커니즘이 있음을 알지만 어떻게 사용할 수 있는지 이해하지 못합니다.

영어 불쌍한 학생들에게 죄송합니다. 감사.

답변

0

서버에 자신의 현재 상태를 보내면 서버는 가입 한 모든 연락처가 사용자에게 전송되기 시작합니다. 기본적으로 모든 연락처를 오프라인으로 간주해야합니다.

나는 JSJaC에 익숙하지 않은,하지만 존재로 제공 콜백은 아마이있다.

0

당신은 presence 핸들러를 등록해야합니다. 사용자 데이터 배열로 명단이 있다고 가정하면 다음과 같이 할 수 있습니다.

xmpp.registerHandler 'presence', (response) -> 
    user = _.find @roster, jid: (response.getFrom().split '/').shift() 
    if user 
    if response.getType() is 'unavailable' 
     user.online = no 
    else 
     user.online = yes