2010-01-06 81 views
1

我想创建一个Google Wave类似的网络聊天/论坛应用程序。聊天/论坛应用程序:长轮询还是iframe?

当一个人正在输入一个新帖子或在其中嵌入一个图像时,其他人就会看到它。

我已阅读关于不同的技术,我觉得长轮询和iframe是最受关注的。

那么,我应该使用哪一个应用程序,为什么?我读过一些关于长时间轮询对于更新时间间隔很长的事情。因为如果它是一个聊天,那么它必须为每个击键请求新的数据。这就像打字时每秒钟轮询一样。所以基于此,我应该使用iframe,以便始终只有一个连接?

meebo/google wave使用什么技术?

回答

1

长轮询听起来像是这种应用程序的不错选择,但您可能需要考虑在关键笔划和服务器回调之间有某种延迟/缓冲期。它不需要很长时间(不到一秒)才能获得严重的速度增益。

您可能还想考虑使用Adobe Flash作为客户端JavaScript和您自己的自定义通信协议之间的桥梁。这提供了更好的控制和更少的开销,但带有客户端插件依赖关系的价格。

最后,但不是至少,您可能需要考虑在Google Wave之上构建应用程序。除非您为构建克隆构建Wave的克隆,否则它可能会为您提供许多所需的基础架构。

我不想听起来很刺耳,但我认为你可能需要深入探讨一下这个问题,当你有一个更具体的问题时回复。

+1

但问题是为什么我应该使用长轮询而不是iframe?因为长时间轮询,您必须在每次击键后请求新信息,以便其他用户看到此信息。但与iframe你不需要任何要求。它只是通过当前连接从服务器中推出,对吗? – ajsie 2010-01-06 11:41:06

1

非iframe类似技术统称为Comet,由于您没有提及任何特定语言,您可能会尝试使用最近已发布的CometD,并且应该支持您想要执行的操作。或者你只是直接挖掘Google Wave编程,因为它似乎已经拥有了你所需要的一切。就我个人而言,我总是发现所有的iFrame解决方案都有点不足。

+0

即时通讯使用php。但如果我使用长轮询,这是不是意味着我不必使用彗星服务器? – ajsie 2010-01-06 11:47:38

+0

是的,我认为你应该这么做,因为保持HTTP连接长时间存活尚不是标准和实现的一部分。在PHP中,如果我认为30秒的最大执行时间已经存在问题,那么无论如何您的连接都将丢失。 Google Wave也在使用Java Server + GWT。 – Daff 2010-01-06 12:57:59

相关问题