2017-09-18 18 views
2

smack 4.2.0 최신 버전을 사용하고 있습니다. 여기서 IncomingChatMessageListener은 정상적으로 작동하지만 메시지를 보내면 OutgoingChatMessageListener이 호출되지 않습니다. 어느 누구도 저에게 문제점을 제안 할 수 있습니까? 내 코드가Smack 4.2.0 OutgoingChatMessageListener가 호출되지 않습니다.

ChatManager chatManager = ChatManager.getInstanceFor(mXMPPConn); 
EntityBareJid jid = JidCreate.entityBareFrom(mStrJabberID); 
Chat chat = chatManager.chatWith(jid); 
chatManager.addOutgoingListener(new OutgoingChatMessageListener() { 
    @Override 
    public void newOutgoingMessage(EntityBareJid to, Message message, Chat chat) 
    { 
     System.out.format("OUTGOING: %s.\n", message); 
    } 
}); 

chat.send(strMsg); 
+0

이상한 로그를 사용하도록 설정하십시오. –

+0

동일한 문제가 발생했습니다. 문제를 파악한 경우 알려 주시기 바랍니다. – rigal

+0

동일한 문제 .. 솔루션을 찾으면 도움주세요. :( – iMDroid

답변

0

나는 맛있는 소스 코드로 디버깅 중입니다. 설명

connection.setFromMode(XMPPConnection.FromMode.USER); 
  • 세트 메시지 유형 메시지

    message.setType(org.jivesoftware.smack.packet.Message.Type.chat); 
    
  • 를 보내기 전에 연결에

    1. 설정 FromMode.USER :

        다음을 시도 할 수 있습니다
      1. AbstractJidTypeFilter 메시지가 가득 차거나 맨손인지 jid에서 확인하십시오. 연결은 jid 스탠 자로 설정되며 기본값은 null입니다. (AbstractXMPPConnection.java#sendStanza, 줄 666)

      2. MessageTypeFilter 채팅 유형 또는 일반 메시지인지 확인합니다.

    0

    나는이 코드에서 AbstractJidTypeFilter.class에 버그가 있음을 발견했습니다.

    버전을 Smack 4.2.0에서 Smack 4.2.2로 변경하면 작동합니다.
    문제가 해결되기를 바랍니다.