mqtt コールバック クライアントの再接続のロジックが見つかりません。メソッド onDisconnected() がありますが、ドキュメントやインターネット上のサンプル例を見つけることができません。
マイリスナー
public class MyListener はリスナーを実装します {
public MyListener()
{
}
@Override
public void onConnected()
{
System.out.println("Connected ....");
}
@Override
public void onDisconnected()
{
System.out.println("Disconnected");
}
@Override
public void onPublish(UTF8Buffer topic, Buffer body, Runnable ack)
{
System.out.println("Entered Onpublish");
try
{
System.out.println("received msg:" + msg);
}
catch (HikeException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
ack.run();
}
}
@Override
public void onFailure(Throwable value)
{
value.printStackTrace();
}
}
接続を作成
private void createConnection(String host, int port,String id, String token) throws Exception
{
this.disconnect();
MQTT mqtt = new MQTT();
mqtt.setHost(host, port);
mqtt.setUserName(id);
mqtt.setPassword(token);
CallbackConnection callbackConnection = null;
callbackConnection = mqtt.callbackConnection();
callbackConnection.listener(new MyListener());
callbackConnection.connect(new MyCallback<Void>("CONNECT"));
callbackConnection.subscribe(new Topic[] { new Topic(uid + "/u", QoS.AT_MOST_ONCE) }, new MyCallback<byte[]>("EVENT SUBSCRIBE"));
callbackConnection.subscribe(new Topic[] { new Topic(uid + "/s", QoS.AT_LEAST_ONCE), new Topic(uid + "/a", QoS.AT_LEAST_ONCE) }, new MyCallback<byte[]>("MSG SUBSCRIBE"));
this.callbackConnection = callbackConnection;
}
マイコールバック
class MyCallback<T> implements Callback<T>
{
public MyCallback(String tag)
{
super();
this.tag = tag;
}
String tag;
@Override
public void onSuccess(T value)
{
System.out.println("TAG:" + tag + " =SUCCESS value=" + value);
}
@Override
public void onFailure(Throwable value)
{
System.out.println("TAG:" + tag + "Fail");
value.printStackTrace();
}
}
私の質問は、mqtt 再接続をサーバー ロジックに実装する方法です。onDisconnect() メソッドを使用する必要がある場合、どのように使用できますか?