草庐IT

android - 服务器推送通知实现

coder 2023-06-08 原文

组,

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

Google cloud messaging

Apple push notification service

Firefox os push notifications

Microsoft push notification service


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

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

Polling

Long polling

Streaming

Server Sent Events

TLS, SSL or TCP socket connections with Client

XMPP


Q2)

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

Apple push notification service

Firefox os push notifications


Q3)

在 Firefox 操作系统中推送通知;他们已经告知他们正在避免保持 Activity 状态以节省电池生命周期。我的问题是没有 keep-alive 如何确定连接是否仍然存在?


Q4)

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

最佳答案

网上有很多很好的文章,你可以去看看你会得到答案。但是我试图回答你的问题: 答案大多适用于 android 和 google 服务器。

答案1) 他们有他们的监听器,你必须通过在你的代码中使用他们的库类来使用它们。你不必为插入而烦恼。您必须将消息发送到服务器服务器会将消息推送到设备。他们使用 OAuth。 关于协议(protocol),有两种使用 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

希望这对您的问题有所帮助。

关于android - 服务器推送通知实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23466637/

有关android - 服务器推送通知实现的更多相关文章

  1. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  4. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  5. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  6. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  7. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  8. ruby-on-rails - 在 Rails 中调试生产服务器 - 2

    您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除

  9. ruby-on-rails - 如何在发布新的 Ruby 或 Rails 版本时收到通知? - 2

    有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:

  10. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

随机推荐