【问题标题】:Is it possible to build a web-based chat client without a socket-based framework?是否可以在没有基于套接字的框架的情况下构建基于 Web 的聊天客户端?
【发布时间】:2009-06-25 22:52:41
【问题描述】:

我听说基于网络的聊天客户端倾向于使用网络框架,例如 twisted 框架

但是是否可以在没有网络框架的情况下构建基于 Web 的聊天客户端 - 仅使用 ajax 连接?

我想构建一个基于会话的一对一网络聊天客户端,它使用会话来指示聊天何时结束。这在 Rails 中是否可能只使用 ajax 而没有网络框架?

使用网络框架有什么影响?不使用网络框架会对我的应用产生什么影响?此外,我们将不胜感激任何有关该项目的一般性建议。

【问题讨论】:

    标签: ruby-on-rails chat twisted web-applications


    【解决方案1】:

    如果我对您的理解正确,您希望客户端连接到您的服务器并通过服务器通过 ajax 相互发送消息。 这是可能的,有两种方法可以做到这一点。

    简单的方法是让两个客户端每隔几秒轮询一次以检查对方发布的新消息。缺点是消息不会立即传递。我认为这是在rails book 中找到的示例。

    更复杂的方法是保持打开的连接,并在服务器收到消息后立即将消息发送给客户端。为此,您可以使用Juggernaut

    我想补充一点,尽管后者有效,但它不是 http 的本意,它有点 hack,但是,嘿,不管做什么都能完成。这方面的一个工作示例是 rails chat project,它使用了一个主宰衍生产品。

    【讨论】:

      【解决方案2】:

      从技术上讲,每个基于网络的应用程序都有一个网络框架,因此,它是基于套接字的......

      这里唯一真正的问题是,您是想让所有聊天都通过您的服务器还是允许点对点通信。如果是前者,您可以使用 ajax 框架与您的 Web 服务器通信。这意味着您的所有客户端都将不断轮询 Web 服务器以获取更新。

      如果是后者,那么您必须允许两个客户端之间的直接 tcp 连接,并且需要更接近金属。

      所以,问问自己这个问题:您是否愿意支付流量费用,并且对泄露人们可能在他们的客户中输入的任何内容承担潜在的责任?或者,您更愿意构建一个人们可以用来互相交谈的聊天程序?

      当然,在走这么远之前,您真的想再构建一个聊天客户端吗?那个地方已经很拥挤了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-04
        • 2017-04-08
        • 2011-08-05
        • 2012-03-27
        • 2016-05-29
        相关资源
        最近更新 更多