我正在使用PubNub创建Android聊天应用程序。我正在使用带有pubnub的GCM推送网关将消息发布到频道。假设用户A和用户B开始私聊。
案例1 - A和B连接到互联网
应用程序运行正常。如果“A”向B发送消息,“B”将接收该消息,无论应用程序处于前台还是后台。
案例2 - A或B未连接到互联网
让我们说“A”连接到互联网而“B”则不连接。 “A”向“B”发布消息。
我能否知道,在这种情况下,Pubnub-end和GCM-end会发生什么?2?
这是我发布消息的方式。
PnGcmMessage gcmMessage = new PnGcmMessage();
try {
gcmMessage.put("delay_while_idle", true);
}catch (Exception e){
e.printStackTrace();
}
gcmMessage.setData(messageObject);
PnMessage message = new PnMessage(
pubnub,
channel,
callback,
gcmMessage);
try {
message.put("pn_debug", true);
message.publish();
} catch (PubnubException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
我仍然熟悉创建实时消息传递应用程序。所以我不知道那里缺少什么。所以请指导我处理这个问题。
答案 0 :(得分:0)
PubNub Mobile Push Gateway允许您使用GCM(Android),APNS(iOS)和MPNS(Windows Phone)作为移动应用在您的应用未主动运行并连接到PubNub时接收消息的回退机制。
这篇PubNub文章Sending APNS and GCM Messages to Subscribers and Mobile Push Notifications Services in One API Call是PubNub移动推送通知的迷你常见问题解答。最后有一个简短的视频,作为本文的摘要。
如果正在发布的应用未连接到互联网(通过手机或wifi),则发布将失败。您的应用(不仅仅是设备)必须正在运行/活动/连接(在前台或后台)到互联网才能连接到PubNub并发布消息。
如果订阅者应用未连接到互联网,则您的应用将不会通过subscribe
回调(PubNub实时消息)收到已发布的消息。
如果设备具有某种连接(单元格或wifi),以便GCM服务(这不是PubNub)可以向设备发送推送通知,则已发布消息中包含的GCM消息将到达您的应用程序
另见: