【问题标题】:Real time web application实时网络应用
【发布时间】:2011-06-11 23:18:17
【问题描述】:

我真的需要你的帮助。我们正计划开发一个实时 Web 应用程序。我们看着不同的库和概念,有点困惑。 我们需要的是:客户端连接到网站并随时发送数据(通常是整数 + 客户端机器名称)(通常为 1-5 秒)。此外,相同的客户端必须以实时模式从服务器接收数据(从其他客户端接收的数据)。 (最长 0.5 秒)。此外,这些数据必须存储在数据库中。

我们正在考虑使用不同的技术,但无法决定使用哪一种。 我们需要在 Iphone 和 Android 手机(可能是黑莓手机)上支持这个 Web 应用程序。 当然还有桌面浏览器。

在这种情况下,由于负载过高,池化似乎不是一个好主意。

Html 5 web sockets 有点新,可能并非所有浏览器都支持。

有人用过 nodejs 吗? 或扭曲矩阵:http://twistedmatrix.com/trac/? 或轨道(不能发布多个链接)? 还是龙卷风? 还是 XMPP(Jabber。我没有找到好的例子。)? 还是别的什么?

在此类项目中最好使用哪种技术?此外,我们可能更喜欢有一些社区支持并且可以免费使用的技术。

非常感谢!

【问题讨论】:

    标签: comet real-time


    【解决方案1】:

    什么样的数据?目的是什么?

    对于实时而言,除非您使用某种类型的 RIA,否则您将无法获得网站,但即便如此,这还不够。服务也不够好。你最终会进行某种类型的轮询,这种轮询只会是伪实时的,除非你使用双工模式,而这种模式在你想要支持的大多数平台上都不受支持。

    套接字是可行的方法,但这需要您要处理的每个平台都有一个客户端。也许你应该重新考虑你的要求。

    【讨论】:

    • 数据:整数,只是数字。目的:它就像一个非常快速的拍卖。有人为一件物品定价,其他人出价。它应该非常非常快(实时读取)
    • 伪实时对我来说没问题。谁在乎它是怎么称呼的。那么除了pooling,没有别的选择了吗?不同的协议怎么样:XMPP。是标准了吗?
    • 最终仍将使用套接字(实时)或轮询(伪实时)。您将需要能够保持连接打开(由客户端建立),客户端/服务器都可以发送数据,或者客户端必须发送 ping 以查看是否需要从服务器获取任何内容。您必须考虑安全性,您不能将数据发送给客户端。如果它只是移动设备,我会说使用推送基础设施(我知道 WP7 有它,不知道关于 android 或 iPhone)。在互联网上保持套接字打开并不是一个聪明的主意,移动设备可能不支持。投票是最安全的。
    • 非常感谢,我们现在正在研究 ape-project.org 或 XMPP 协议
    • ape-project 看起来不错。祝你好运。
    【解决方案2】:

    当您说客户“连接到网站”时,您真的需要它成为网站吗?听起来客户发送的所有内容都是一个数字,因此您不需要网站。只需选择您选择的语言,打开一个套接字,然后从那里开始。

    您是否正在流式传输数据以进行可视化?您可能想看看graphite(和/或“pyped”,它是石墨的一部分)。

    【讨论】:

    • 但是除了 Web 应用程序还有什么其他的方式呢?我们不希望任何人在他们的设备上安装任何东西。但是我们仍然需要管理员的网络应用程序。
    • @user194076:我不确定我是否理解这个问题。如果您需要管理界面,您将需要一个 Web 服务器,但对于实时接受和交付数据的服务器,您不需要 Web 服务器。 Web 服务器只是您可以运行的众多服务器中的一种,如果您所做的只是来回发送数字和客户端名称,则不需要 Web 服务器的开销。
    【解决方案3】:

    这里有很多事情需要考虑。我会说 HTML 5 不是一个选项,仅仅是因为跨平台支持。

    使用 NodeJS 运行是最有可能的,但通信方法确实很复杂。将数据推送到页面并不是 HTML/Web 应用程序设计的真正目的......

    要获得有效的答案,您需要有人进来与您坐在一起,真正解决细节和实施问题。

    【讨论】:

    • 同意,不要将应用层协议(HTTP、XMPP 等)与其实现(TwistedWeb、NodeJS、Tornado)混为一谈。
    • 是的,我知道我有点搞混了。我知道网络应用程序就是为此而设计的。我知道项目的所有细节。如果我们能找到合适的技术,这看起来相当简单。
    猜你喜欢
    • 1970-01-01
    • 2014-11-06
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2014-11-03
    • 2018-01-29
    • 2014-04-21
    相关资源
    最近更新 更多