2012-01-20 4 views
1

私はaSmackを使用してアンドロイド携帯電話間でXMPP通信を設定するための基本を試しています。私は自分のアプリからアカウントを登録し、自分のPCにログインしているJabber-IDにメッセージを送信することができました。問題は私のPCクライアントからの返信が受信されていないように見えることです。私のMessageListenerのprocessMessage()は呼び出されていないようです。aSmack MessageListenerのprocessMessageは呼び出されません

 try{connection.login("kmomochesstest", "password1");} 
     catch(Exception e){Log.e("connection","Account login error: " + e.toString());} 
     chat = connection.getChatManager().createChat("[email protected]", new MessageListener() { 

      public void processMessage(Chat chat, Message message) { 
       try{System.out.println(message.getBody());} 
      catch(Exception e){Log.e("connection","Message send error: " + e.toString());} 
     }); 
     try{chat.sendMessage("Test Message from Activity");Log.d("connection","Just sent Message ");} 
     catch(Exception e){Log.e("connection","Message send error: " + e.toString());} 

この時点で私は、コンソールに印刷しようとしているが、私は、ログへの印刷を試してみましたが、ちょうどchat.sendMessage(message.getBody())に戻って自分のPCにエコーしました。受信メッセージを登録するようなものはありません。これは、私がオンラインで見つけたすべての方法の形式と思われます。

+0

私はaSmack-2010.05.07を使用しています。これは最新のものですが、使用できるSmackのバージョンがわかりません。私はChatManagerListenerをやり終えました。それは私が必要としていたすべての回答を受け取りました。副メモで、これは私のアプリのいくつかの実行で正常に動作していた。私は最初に私のサーバーに接続しようとすると、私は "ドメインに接続できませんでした:ポート:リモートサーバータイムアウト。(504)。原因:java.net.UnknownHostException:ホストが解決されていません:ドメイン:ポート "アイデア? –

+0

これは私のコンピュータをリセットすることによって修正されました。 –

答えて

0

どのバージョンのSmackを使用していますか?

以前のバージョンでは、スレッドIDが含まれていないメッセージを、既存のチャットに一致させようとしたときに問題が発生しました(Smackはそうです)。たとえば、PidginはスレッドIDを使用せず、メッセージを受信したときに新しいチャットインスタンスを作成します。

これが起こらないように、マッチングプロセスが3.2で改善されました。

ChatManagerListenerを作成し、新しいチャットが返信から作成されているかどうかを確認してください。

+0

私はaSmack-2010.05.07を使用しています。これは最新のものですが、使用できるSmacのバージョンはわかりません。私はChatManagerListenerをやり終えました。それは私が必要としていたすべての回答を受け取りました。 –

+0

これはSmackの古いバージョンです。私はほとんどの人が実際にAndroidで動作させるためにSmackをいくつかのマイナーチェンジで使用していると思います。 Smackの新しいバージョンのメリットが得られます。 – Robin

+0

本当に基本的なメッセージングニーズにはうまくいきましたが、うまくいきました。私は本当に複雑なPubSubの機能は必要ありません。 –

関連する問題