我編寫了一個簡單的程序,使用Java中的pubnub接收消息。我面臨的問題是我無法檢索收到的消息的timetoken
。這個回調是從來沒有所謂的,雖然它的API成功調用timeToken不被調用
@Override
public void successCallback(String channel, Object message, String timeToken){
System.out.println("SUBSCRIBE : " + channel + " : " + message.getClass() + " : " + message.toString());
System.out.println(timeToken);
}
沒有timetoken
的回調,雖然叫存在。任何人都可以告訴我如何檢索消息的時間。
import java.io.IOException;
import com.pubnub.api.*;
import org.json.*;
public class Main{
public static void main(String[] args){
Pubnub pubnub =
new Pubnub("demo", "demo");
pubnub.setUUID("1");
try{
pubnub.subscribe("test", new Callback(){
@Override
public void connectCallback(String channel, Object message){
System.out.println("SUBSCRIBE : CONNECT on channel:" + channel + " : " + message.getClass() + " : "
+ message.toString());
}
@Override
public void disconnectCallback(String channel, Object message){
System.out.println("SUBSCRIBE : DISCONNECT on channel:" + channel + " : " + message.getClass() + " : "
+ message.toString());
}
public void reconnectCallback(String channel, Object message){
System.out.println("SUBSCRIBE : RECONNECT on channel:" + channel + " : " + message.getClass() + " : "
+ message.toString());
}
@Override
public void successCallback(String channel, Object message){
System.out.println("SUBSCRIBE : " + channel + " : " + message);
}
@Override
public void successCallback(String channel, Object message, String timeToken){
System.out.println("SUBSCRIBE : " + channel + " : " + message.getClass() + " : " + message.toString());
System.out.println(timeToken);
}
@Override
public void errorCallback(String channel, PubnubError error){
System.out.println("SUBSCRIBE : ERROR on channel " + channel + " : " + error.toString());
}
});
pubnub.history("akosha1", 100, new Callback(){
public void successCallback(String channel, Object response){
System.out.println(response.toString());
}
public void errorCallback(String channel, PubnubError error){
System.out.println(error.toString());
}
});
try{
System.in.read();
} catch (IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (PubnubException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
訂閱上的TimeToken作爲一個標識符是不可靠的,因爲它是一個移動目標,並且將根據客戶端連接而改變。你在代碼中使用TimeToken是什麼?根據您的使用情況,有一些最佳實踐選項可用;-) – PubNub 2014-11-25 21:35:07
請通過[email protected]與我們聯繫,以便我們更好地瞭解您要完成的任務,並且可以指導您成功(通過修復客戶端,現有功能或解決方法)。 – Geremy 2014-11-26 17:29:26
如果我記得,這個成功回撥用於與所有訂閱呼叫一起被調用。我升級到3.7.0,它不再有效。 – 2014-11-26 22:51:53