2012-03-16 61 views
2

我在使用fusesource mqtt-client-java1.4-uber-1.0(在android应用程序中)时遇到了一些问题。当我提供错误的IP或者mqtt代理没有运行在正确的IP上时,它会提示消息“无法连接(回调)”,但不会“无法连接(监听)”。当我提供正确的IP并且代理运行时,根本没有警报出现。我猜听众根本不工作,不知何故,连接的成功回调不会更加激烈。任何想法?在android活动的完整代码下方。android 2.1中的mqtt-client应用程序

我使用这个版本的MQTT客户端的:mqtt-client-java1.4-uber-1.0.jar 我也尝试过不同的展览经纪人(服务器),这是RSMBMosquitto

package racenet.mqtt; 

import java.net.URISyntaxException; 

import org.fusesource.hawtbuf.Buffer; 
import org.fusesource.hawtbuf.UTF8Buffer; 
import org.fusesource.mqtt.client.Callback; 
import org.fusesource.mqtt.client.CallbackConnection; 
import org.fusesource.mqtt.client.Listener; 
import org.fusesource.mqtt.client.MQTT; 

import racenet.mqtt.R; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.os.Bundle; 

public class MQTTActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     MQTT mqtt = new MQTT(); 

     try { 

      mqtt.setHost("tcp://proper-ip-here:1883"); 

     } catch (URISyntaxException e) { 

      new AlertDialog.Builder(MQTTActivity.this) 
       .setMessage("Could not set host") 
       .setNeutralButton("OK", null) 
       .show(); 
     } 

     final CallbackConnection connection = mqtt.callbackConnection(); 
     connection.listener(new Listener() { 

      public void onConnected() { 

       new AlertDialog.Builder(MQTTActivity.this) 
        .setMessage("Connected (listener)") 
        .setNeutralButton("OK", null) 
        .show(); 
      } 

      public void onDisconnected() { 

       new AlertDialog.Builder(MQTTActivity.this) 
        .setMessage("Disconnected (listener)") 
        .setNeutralButton("OK", null) 
        .show(); 
      } 

      public void onFailure(Throwable arg0) { 

       new AlertDialog.Builder(MQTTActivity.this) 
        .setMessage("Failure (listener)") 
        .setNeutralButton("OK", null) 
        .show(); 
      } 

      public void onPublish(UTF8Buffer arg0, Buffer arg1, Runnable arg2) { 

       new AlertDialog.Builder(MQTTActivity.this) 
        .setMessage("Publish (listener)") 
        .setNeutralButton("OK", null) 
        .show(); 
      } 
     }); 

     connection.connect(new Callback<Void>() { 

      public void onFailure(Throwable value) { 

       new AlertDialog.Builder(MQTTActivity.this) 
        .setMessage("Could not connect (callback)") 
        .setNeutralButton("OK", null) 
        .show(); 
      } 

      public void onSuccess(Void v) { 

       new AlertDialog.Builder(MQTTActivity.this) 
        .setMessage("Connected (callback)") 
        .setNeutralButton("OK", null) 
        .show(); 
      } 
     }); 
    } 
} 
+0

好,我现在切换到MeQanTT,它更简单,适合我的需求,并且按照它的原样工作;) – 2012-03-17 09:37:44

+0

如果已经提到了其他Android客户端,那么您可能想知道,在本月末应该有一个新的固定开源MQTT Java客户端,它应该也能够在android上工作。 - http://www.eclipse.org/paho/ – Dror 2012-03-19 10:42:18

回答

4

MQTT-客户java1.4-超级-1.0简单地是一个蹩脚实施

相关问题