gpt4 book ai didi

android - Pusher VS Client 每秒向服务器请求更改

转载 作者:行者123 更新时间:2023-11-30 02:19:52 26 4
gpt4 key购买 nike

我正在尝试实现从我的服务器到自定义 Android 设备的实时推送。 (在 android 操作系统上运行的设备)。我不能使用 GCN,因为没有唯一的 token 。


这是交易。

问题

  1. 我正在从门户网站向服务器发布消息
  2. 我希望将消息推送到 android 设备

这是建议的解决方案,哪个是最好的?

解决方案一

  1. 插入带有“create_date”时间戳的消息
  2. 让 android 设备每秒请求服务器以通过“create_date”检查是否有任何新消息

方案二

  1. 将 Pusher 与安装在 Android 设备中的 pusher-java-client 库一起使用。

我正在考虑使用解决方案 2,我认为这是最理想的!由于我不太清楚Pusher是如何工作的,那么pusher的架构是否与方案一相同?

有好心人回答我的问题吗?

提前谢谢你。

最佳答案

架构在两个方面有所不同:

  1. Pusher 服务将在移动设备和服务之间建立持久连接,因此当有新数据可用时,可以立即将其推送到移动设备
  2. Pusher 为您提供实时基础设施,因此您不必处理多个轮询请求,您只需向 Pusher 发出一个 HTTP 请求,它就会推送您发送给移动客户端的消息。这是一种比自己构建更简单的架构,如果您需要横向扩展,您会看到显着的好处。

代码

在 Android 应用中:

Pusher pusher = new Pusher(YOUR_APP_KEY);

pusher.connect();

// Subscribe to a channel
Channel channel = pusher.subscribe("my-channel");

// Bind to listen for events called "my-event" sent to "my-channel"
channel.bind("my-event", new SubscriptionEventListener() {
@Override
public void onEvent(String channel, String event, String data) {
System.out.println("Received event with data: " + data);
}
});

在 Web 服务器( Node )上:

var Pusher = require('pusher');
var pusher = new Pusher({appId: ID, key: KEY, secret: SECRET});
pusher.trigger('my-channel', 'my-event', {some: 'data'});

为确保 channel 只能由消息的预期收件人订阅,您应该使用 authenticated channels .

关于android - Pusher VS Client 每秒向服务器请求更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28757683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com