gpt4 book ai didi

java - 流数据服务(Web 服务)

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:00 25 4
gpt4 key购买 nike

我想编写网络服务,它将从客户端(Android/Iphone)获取数据并实时推送到客户端(例如网站)。 Android不断向服务器发送数据,网站上应该显示相同的信息。

发送的数据将为纯文本文件。我在android上的应用程序每秒都会生成纯文本,并将其发送到服务器。网站上应显示相同的纯文本。

-------            --------                  --------  
Android ----> Server ------> Website
------- -------- --------

您建议采用哪些技术来实现实时结果?

最佳答案

没有更多关于这个故事的信息,我可以想到一些建议,并且我确信有很多方法可以解决这个问题。

情况 1:消息未经编辑就发送到网站 - 这是迄今为止最简单的情况,您可以使用 Pusher.com (或类似的东西)而不是编写自己的服务器。有一个 Android 客户端可用 Android Client 。但这只有在您不想操纵 Android 和网站之间的消息时才有效。如果您希望服务器了解消息(例如出于日志记录原因),您还可以让服务器监听与网站相同的 channel 。

-------            --------                  --------  
Android ----> Pusher.com ------> Website
------- -------- --------

情况2:您的服务器需要位于中间,或者您需要拥有中间人 -

这个设计可能比你想象的更复杂。这仅取决于许多因素。
例如:

  • 您的服务器需要水平扩展还是需要高可用性?
  • Android 设备是仅与一个 WebClient 通信还是向多个 WebClient 发布:1 对 1 channel 或发布/订阅?
  • 它能满足您的入站负载的服务器处理量。
  • 您是否需要检索 WebClient 离线时生成的消息。
  • 您需要支持哪些浏览器/Android 版本。
  • 等等...

基于这些因素,您最终可能需要支持这样的设计:

                                                         --------  
---------- out-channel -> WebClient0
| --------
------- -------- --------
Android -- in-channel --> server1 ---- out-channel -> WebClient1
------- | -------- --------
| -------- --------
\--> server2 ---- out-channel -> WebClient2
-------- --------

一些帮助您入门的基本框架:

  1. Pusher.com - 您可以使用两个推送 channel ,您的服务器位于两个入站/出站 channel 之间。
  2. http://socket.io/ - 这是一个非常容易使用的 Node.js 模块。它包含一个 JavaScript 库,是您的出站 channel 的绝佳选择。 YFI:该项目也有一个到 Java/Netty 的端口。
  3. http://aws.amazon.com/sqs/ - 这是AWS提供的分布式队列。由于跨源策略,它不能很好地与 Web 浏览器配合使用,但 Android 可以很好地向其提交消息。因此,它可以适用于入站 channel 。另外(如 Pusher channel )SQS 队列支持发布/订阅,因此您可以将消息发布到所有服务器。

有很多处理实时处理的框架,但在不了解更多信息的情况下,我将限制对这些基础知识的回答。

关于java - 流数据服务(Web 服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15916650/

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