过去,我在这个案例中使用PubNub取得了成功.我在构建Mote.io时使用了类似的技术.
我一直认为手机不能轻松实现点对点连接是愚蠢的,但你可以模仿这种与中间第三方的通信.使用像PubNub这样的托管服务的优点是它可以在Wifi和蜂窝网络上工作,并且能够处理不良或丢弃的连接.
您可以使用PubNub Android SDK for android订阅并发布到PubNub网络上的频道.所有的网络都得到了照顾,您唯一关注的是频道和消息.
以下示例取自此处的Android SDK教程.

这就是有趣的开始!如果我们想要从频道接收消息,我们需要订阅频道.要做到这一点,我们需要做的就是使用subscribe()方法并提供一个通道名称.我们将使用hello_world作为频道名称.
我们还需要定义一个回调对象,该对象将作为参数传递给subscribe()方法.来自回调对象的方法将在消息接收,错误,连接,断开连接,重新连接等事件上调用:
try {
pubnub.subscribe("hello_world", new Callback() {
@Override
public void connectCallback(String channel, Object message) {
Log.d("PUBNUB","SUBSCRIBE : CONNECT on channel:" + channel
+ " : " + message.getClass() + " : "
+ message.toString());
}
@Override
public void disconnectCallback(String channel, Object message) {
Log.d("PUBNUB","SUBSCRIBE : DISCONNECT on channel:" + channel
+ " : " + message.getClass() + " : "
+ message.toString());
}
public void reconnectCallback(String channel, Object message) {
Log.d("PUBNUB","SUBSCRIBE : RECONNECT on channel:" + channel
+ " : " + message.getClass() + " : "
+ message.toString());
}
@Override
public void successCallback(String channel, Object message) {
Log.d("PUBNUB","SUBSCRIBE : " + channel + " : "
+ message.getClass() + " : " + message.toString());
}
@Override
public void errorCallback(String channel, PubnubError error) {
Log.d("PUBNUB","SUBSCRIBE : ERROR on channel " + channel
+ " : " + error.toString());
}
}
);
} catch (PubnubException e) {
Log.d("PUBNUB",e.toString());
}
Run Code Online (Sandbox Code Playgroud)
现在是时候找到我们的声音.是时候向世界各地的每个人发送消息了订阅频道演示.首先,我们将按照我们在步骤3中所做的订阅,这次我们将通道指定为演示.一旦我们订阅了频道,我们需要做的就是使用publish()方法.我们将指定频道名称,即我们要发送的消息.我们还将包含一个回调对象.
Callback callback = new Callback() {
public void successCallback(String channel, Object response) {
Log.d("PUBNUB",response.toString());
}
public void errorCallback(String channel, PubnubError error) {
Log.d("PUBNUB",error.toString());
}
};
pubnub.publish("demo", "Hello World !!" , callback);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12349 次 |
| 最近记录: |