2011-07-29 3 views

답변

2

캐치의 의미는 무엇입니까? 디버깅을 위해 ejabberd_sm : close_session에? DEBUG를 추가하십시오. ejabberd_c2s 이상의 dbg 추적 : 종료 및 동일한 ejabberd_sm : close_session. 응용 프로그램 호출의 경우 sm_remove_connection_hook을 구독하십시오. 나만의 훅을 구현하고 맞춤형 훅을 사용할 수 있습니까?

+0

클라이언트가 클라이언트 봇과 봇 메시지 보내기 메시지를 전송하고 클라이언트가 오프라인으로 이동, 내가 어떻게이 순간을 잡아 오프라인으로 이동 클라이언트 JID를 알 수 있는가? – 0xAX

1

정말 잘 모르겠다. 만약 당신이 클라이언트를 봇에 지시 한 존재를 보낼 수있는 힘이 있다면, 사용자가 오프라인이되었을 때 서버는 연결 해제에 대한 통보를 보낸다. 봇.

RFC 3921 여기에 litle 추출물이 있습니다.

5.1.4. 현재

사용자는 (다른 개체에 관한 존재를 전송할 수 연출 예와 존재 스탠 속성 그 값 다른 엔티티의 JID이며 아니오 '타입'속성 또는 '타입 중 하나와'에서 ' '속성 값이 "사용할 수 없음"인 속성). 사용자가 에서 "에서"또는 구독 유형 사용자의 명단 "모두" 후 갖는 아닌 실체로 존재를 지시 보내는 경우

  1. ...
  2. : 세 가지 경우가 있습니다 초기 존재를 보냈고 사용할 수없는 존재를 보내기 전에 브로드 캐스트, 사용자의 서버는 의 전체 XML을 전달하거나 전달해야합니다 (존재 스탄자를 entityv (...); 그러나 사용자가 직접 지시를 보낸 사용 가능한 리소스가 사용 불가능한 경우 을 사용할 수 없으면 사용자 서버는 해당 사용 불가능 사용자를 사용할 수없는 존재를 해당 엔터티로 보내지 않은 경우 사용할 수없는 존재를 엔터티에 브로드 캐스트해야합니다.
  3. ...

희망이 도움이됩니다.

0

난 당신이 사용자가 오프라인 연을 보낼 때 사용자가 확인보다는 C2S 연결을 종료 할 때 확인하려고하는 생각, 편집하고이 목적을 위해 ejabberd_c2s.erl을 사용자 정의 할 수 있습니다. ejabber_c2s에서 disconnect를 다루는 함수는/3을 끝내고 (# 1425 행) 클라이언트의 jabber id를 아주 쉽게 찾을 수 있습니다.