我之前从未与pubnub合作,所以只想得到一些指南,因为我的要求有点像,我需要制作群聊应用程序,我将使用RestFull Apis将数据从我的应用程序传递到服务器服务器将数据推送到Pubnub,我将从pubnub检索数据以显示应用程序内的数据。
Flow就像: -
使用RESTful API将数据从应用程序传递到服务器。
使用PubNub数据网络从服务器检索数据。
我为pubnub搞砸了,并且知道如何将它集成到我的应用程序中,因为我将需要 publish_key和subscribe_key 来初始化我的应用程序中的Pubnub SDK。
Pubnub pubnub = new Pubnub("Your Publish Key Here", "Your Subscribe Key Here");
我还研究过 Subscriber and Publisher ,根据我的理解,我应该订阅我的服务器将在pubnub上构建的频道,以便从Pubnub检索数据并且必须使用如下所述的功能: -
pubnub.history("channel_name", 100, new Callback() {
public void successCallback(String channel, Object message) {
System.out.println(message);
}
});
这正是我需要在我的应用程序的代码部分内做的事情,请给我一些指导,如果有人使用这种类型的要求,那将是非常有帮助的,因为我没有太多时间花在R& D。
由于
答案 0 :(得分:1)
<强> 1。使用RESTful API将数据从应用程序传递到服务器。
如果您想将数据从客户端应用程序发送到服务器应用程序,只需使用传统的Web应用程序技术将其直接发布到服务器即可。
然后,您的服务器可以将消息发布到您的客户端应用订阅的PubNub频道。
<强> 2。使用PubNub数据网络从服务器检索数据到应用程序。
您可以使用pubnub-android-Lolli-chat应用程序,该应用程序使用许多PubNub功能。
git repo https://github.com/GleasonK/pubnub-android-lolli-chathttp://kevingleason.me/pubnub-android-lolli-chat/
使用流动代码从PubNub检索数据:
pubnub.history(this.channel,100,false,new Callback() {
@Override
public void successCallback(String channel, final Object message) {
try {
JSONArray json = (JSONArray) message;
Log.d("History", json.toString());
final JSONArray messages = json.getJSONArray(0);
final List<ChatMessage> chatMsgs = new ArrayList<ChatMessage>();
for (int i = 0; i < messages.length(); i++) {
try {
if (!messages.getJSONObject(i).has("data")) continue;
JSONObject jsonMsg = messages.getJSONObject(i).getJSONObject("data");
String name = jsonMsg.getString(Constants.JSON_USER);
String msg = jsonMsg.getString(Constants.JSON_MSG);
long time = jsonMsg.getLong(Constants.JSON_TIME);
ChatMessage chatMsg = new ChatMessage(name, msg, time);
chatMsgs.add(chatMsg);
} catch (JSONException e) { // Handle errors silently
e.printStackTrace();
}
}
MainActivityPubnub.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// Toast.makeText(MainActivityPubnub.this,"RUNNIN",Toast.LENGTH_SHORT).show();
mChatAdapter.setMessages(chatMsgs);
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void errorCallback(String channel, PubnubError error) {
Log.d("History", error.toString());
}
});
答案 1 :(得分:1)
如果要将数据从客户端应用程序发送到服务器应用程序,可以使用传统的Web应用程序技术直接将其发布到服务器。
然后您的服务器可以publish messages到您的client apps are subscribed to的PubNub频道。
没有要求将history API用于您描述的内容。使用history
获取发布时遗漏的邮件。例如,客户端应用程序当时处于脱机状态。
您似乎正在使用PubNub Java SDK v3.x.请使用latest PubNub 4.x SDK。