首页 文章

服务器推送通知实现[关闭]

提问于
浏览
18

组,

我计划将我自己的服务器推送通知服务器实现到Android / IOS应用程序 . 因此,我的应用程序服务器(可以通过NodeJ实现)将联系该Notification Server以将消息推送到设备 . 所以我通过互联网浏览并找到了以下现有的解决方案 .

谷歌 Cloud 消息传递Apple推送通知服务Firefox os推送通知微软推送通知服务

Q1)
在各自的网站上;他们只是告知如何使用他们的通知服务器 . 但是我需要有关他们如何实现服务器推送的信息 .

请告诉我;他们是否遵循以下任何一项?

轮询长轮询流式服务器已发送事件与客户端XMPP的TLS,SSL或TCP套接字连接

Q2)

以下两种方法声称虽然我的应用程序没有运行;他们仍然可以向APP发送通知吗?怎么可能?

Apple推送通知服务Firefox os推送通知

Q3)

在Firefox os推送通知;他们已经告知他们正在避免保持活力以节省电池寿命 . 我的问题是没有keep-alive如何确定连接是否仍然存在?

Q4)

所有这些(GCM / APNS / FireFox OS)实现只是服务器端推送,并且不接受来自客户端的请求 . 我对么?
所以我的服务器仍然需要处理推送消息以外的数百万设备请求,对吗?
如果我在自己的通知服务器和客户端设备之间使用websocket,我是否需要在我的应用服务器和客户端之间再保持一个websocket连接以接收来自设备的请求?

3 回答

  • 9

    互联网上有很多好文章,你可以通过你获得答案 . 但是我想回答你的问题:答案主要适用于Android和谷歌服务器 .

    Ans1)他们有他们的听众,你必须在你的代码中使用他们的库类 . 你不必费心去推 . 您必须将消息发送到服务器服务器才会将消息推送到设备 . 他们使用OAuth . 关于协议,有两种使用CCS和XMPP的方法 . CCS只使用XMPP作为经过身份验证的传输层,因此您可以使用大多数XMPP库来管理连接 . 要向设备发送通知,您可以在Android应用程序中编写代码以发送以及您的服务器代码 . 发送消息只能由您的代码完成 . 在GCM案例中,Google Server会照顾休息 . 您可以在此链接查看详细信息

    http://developer.android.com/google/gcm/server.html

    此外,还有安全问题

    google cloud messaging security https://groups.google.com/forum/#!topic/android-gcm/M-EevBitbhQ

    回答2)是的,如果您的应用程序未运行,那么设备vcan也会收到通知,因为您必须为广播侦听器编写代码 . 在后台,它将监听服务器,每当有任何消息包存在时,它将收到消息作为通知 . Android有你需要的服务,不要打扰它 . 您只需使用库类使用这些资源,这样可以使您的工作更轻松,如果您的应用程序未运行,则让它们写入,然后它也会收到通知 . 显然,会有一些听众鞭打应用程序来接收 . 检查此链接中的“接收消息”部分

    http://developer.android.com/google/gcm/client.html

    答案3) - Firefox OS推送通知专为一件事 - 唤醒应用程序 . 他们不处理数据 . 检查此链接

    https://hacks.mozilla.org/2013/07/dont-miss-out-on-the-real-time-fun-use-firefox-os-push-notifications/

    答案4) - 不,它也会接受用户的请求 . 我不确定其他人,但对于GCM,它会这样做 . 请检查“发送消息”

    http://developer.android.com/google/gcm/client.html

    希望这可以帮助您解决问题 .

  • 1

    Apple推送通知由iOS控制而不是您的应用程序 . 因此,即使应用程序未运行,也可以使用此功能 . 要发送通知,请打开与Apple服务器的ssl连接并发送推送通知有效负载 . 没有民意调查,因为iOS会处理所有事情 .

    如果您打算编写自己的服务器,则无法使用推送通知,因为您需要从自己的服务器提取消息,因此会耗尽电池电量 . Apple APNS由iOS控制,它会在一段时间内连接到Apples服务器并收集设备上所有应用的所有推送通知 .

  • 8

    除了技术细节之外,还有各种第三方解决方案,例如Amazon SNS . 每百万通知应约为0.50美元 . 比较实现您自己的服务器/服务(时间,成本,可靠性)这个微小的成本,我觉得您应该花时间在项目的其他方面 .

相关问题