2012-05-17 3 views
1

Strophe.js 응용 프로그램에 최근에 다른 문제가 발생했습니다. 사용자 B와 적극적으로 채팅 중이지만 < 활성 > 및 물건) 서버가 사용자 B에게 내가 사용할 수 없게되었음을 알리는 것입니다..Strophe.js 서버는 현재 적극적으로 채팅하는 사용자에게도 사용할 수없는 상태로 보냅니다.

  • 초기 존재 스탠자에게
  • 업데이트 상태
  • 시작 핑 서버마다 10 초
  • 사용자가 필요 (거리/DND)를 전송 연결 : 순간의 논리에서

    은 다음과 같습니다 지금 채팅 할 수 있습니다.

핑 소리가 들리지 않습니다. 전자가 서버를 깔끔하게 만들지 못하도록하기 위해서는 잘 알고 널리 사용되는 기술 (< iq ...> 사용)이 필요합니다.

사용자가 보낸 모든 메시지는 다음과 같습니다

<message from="[email protected]" to="[email protected]" type="chat" id="randomID" xmlns="jabber:client"> 
    <active xmlns="http://jabber.org/protocol/chatstates" /> 
    <body>Text</body> 
</message> 

이 문제와 그것에 대한 가능한 해결책은 알고 계십니까?

답변

0

이 문제는 Strophe.roster 플러그인을 사용하여 해결할 수 있습니다. 이 문제는 사용자가 서버에 다시 기록 할 때 새 세션이 만들어 졌다는 사실과 관련이 있습니다. 얼마 후 (60 년대), 이전 세션이 만료되었고 서버가 사용자가 사라 졌다는 정보를 방송했습니다.

이 솔루션을 사용하려면 로그인 할 때 각 연락처가 만든 리소스를 저장하고 사용자가 없어지면 제거해야합니다. 더 이상 자원이없는 경우에만 사용자는 오프라인으로 간주 할 수 있습니다.

나는 또한 Strophe.roster 예에 새로운 기능을 추가 :

isOnline: function (jid) { 
    var item = this.findItem(jid); 
    if (!item || !item.resources) { 
     return false; 
    } else { 
     for (var k in item.resources) { 
      return true; 
     } 
     return false; 
    } 
} 
관련 문제