是否有可能在没有基于套接字的框架的情况下构建基于Web的聊天客户端?

时间:2009-06-25 22:52:42

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

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

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

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

它对使用网络框架有什么影响?它对我的应用程序有什么影响?此外,任何有关接近该项目的一般性建议都将受到赞赏。

2 个答案:

答案 0 :(得分:5)

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

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

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

之类的内容

我想补充一点,虽然后者有效,但它不是http的意思,它有点像黑客,但是,嘿,无论做什么工作。一个工作的例子是使用剑圣衍生物的rails chat project

答案 1 :(得分:3)

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

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

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

所以,问问自己:你是否愿意支付交通费用,并且有可能承担泄露人们可能在其客户身上打字的责任;或者,您是否只想构建一个人们可以用来互相交流的聊天程序?

当然,在走到那么远之前,你真的想建立另一个聊天客户端吗?这个空间已经非常拥挤。