Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何通过互联网将数据从android传输到PC(推送通知)_Android_Delphi_Connection - Fatal编程技术网

我如何通过互联网将数据从android传输到PC(推送通知)

我如何通过互联网将数据从android传输到PC(推送通知),android,delphi,connection,Android,Delphi,Connection,这就是我想要实现的目标: 我有一个android手机应用程序(本机)和一个桌面PC应用程序(Delphi),可以“了解”彼此 (这意味着它们已被初始化,以了解彼此的全局唯一ID)。 如果我在手机上执行特定操作,我希望通过互联网将数据(一些字节到几kB)从手机传输到PC。(为此使用外部服务器/服务是可以的。) 限制条件: 电话或个人电脑可以在互联网上的任何地方(如电脑后面) NAT路由器和/或防火墙后面 客户不需要进行任何配置(尽管设置了唯一ID)。它应该是现成的 数据传输的开始应快速(最好

这就是我想要实现的目标:

我有一个android手机应用程序(本机)和一个桌面PC应用程序(Delphi),可以“了解”彼此 (这意味着它们已被初始化,以了解彼此的全局唯一ID)。 如果我在手机上执行特定操作,我希望通过互联网将数据(一些字节到几kB)从手机传输到PC。(为此使用外部服务器/服务是可以的。)

限制条件:

  • 电话或个人电脑可以在互联网上的任何地方(如电脑后面) NAT路由器和/或防火墙后面
  • 客户不需要进行任何配置(尽管设置了唯一ID)。它应该是现成的
  • 数据传输的开始应快速(最好<1秒)
  • 可能会有数千名用户使用该服务
  • 我宁愿不依赖谷歌账户(这不是一个交易破坏者)
  • 第一个想法是设置一个REST服务,手机将向其发送数据,桌面应用程序将向其发送数据 那就是投票。但这似乎并不优雅,我对这种规模有一些担忧。还有其他想法吗


    编辑:最终程序应该类似于Windows应用程序的遥控器。因此,类似于Windows的Google Cloud Messaging之类的东西可能会有所帮助(但从微软来看,这似乎只是个问题)。

    在我看来,你走的方向是正确的。使用改装或本机库进行发布,既然你的电脑(插入friggen'wall=])中有一个良好、稳定的互联网连接,为什么不偶尔用电脑对服务器进行ping并注册该IP以获取通知?当然,当他们离开网络时,他们的IP有时会改变,但这还不足以成为一个问题

    也就是说,如果你想做这个超级,简单,使用,我的朋友=]它的规模很好,很容易,当然一些钱,一旦你达到一定的使用,但我认为你会很高兴支付它,当你达到这一点。无论如何,这比服务器操作要便宜得多!它能推吗?哦,是的。它能让Android/iOs应用程序变得简单吗?那么,NoSQL容易吗?=]如果你真的想,你甚至可以编写一些js在云上运行


    正如您所写的:不断地轮询服务器以获取新数据并不优雅。即使有数千个发送Android应用程序,投票请求也可能会不断返回数据

    您可以选择不同的协议,该协议支持从服务器到Delphi应用程序的异步发送。MQTT和STOMP是其中的两个。它们提供文本和二进制消息有效载荷,当服务器推送消息时,您的Delphi应用程序将接收消息


    如果您期望有如此多的Android sender设备,我还建议您评估消息代理,如ActiveMQ或RabbitMQ。它们使异步操作变得非常简单-您的Delphi应用程序可以停止一段时间(用于维护),而不会丢失任何消息。这些MessageBroker还提供了有用的功能,包括高可用性和持久存储。

    我上个月做了类似的事情:我在Android应用程序中添加了一个IdFTP,它会向服务器发送一个文本文件。当我打开我的计算机程序时,它会自动查看是否存在该文本文件(Form OnCreate event)。@AlbertoRossi我的两个应用程序都在运行,数据将在何时发送。为了让PC得到通知,它需要对该文件进行轮询-这与我使用REST服务器的想法非常相似。关于你的第一个建议:偶尔ping意味着每秒1 ping(以满足3和1)?关于解析:您是否使用解析向windows PC发送消息?消息传递的速度有多快?嗯,是的,如果你在一个你无法控制的防火墙后面,你将不得不通过来自PC的请求来实现这一点——根据定义;也许javascrpt可以帮助您,但现在我们讨论的是如何绕过防火墙。当然,如果你能控制哪些服务是允许的,你可以推送。Parse为手机提供非常快速的推送通知,我想PC端也不会更糟