【发布时间】:2009-04-14 13:16:11
【问题描述】:
我已经进行了一个可以通过 Telnet 连接的聊天。我的聊天当前实现为 Twisted TCP 服务器。如何将其转换为浏览器的聊天?
我想我应该使用彗星服务器(例如 Orbited)来同时提供静态 HTML 和动态内容。快速可靠的聊天是否需要这样的彗星服务器?
【问题讨论】:
我已经进行了一个可以通过 Telnet 连接的聊天。我的聊天当前实现为 Twisted TCP 服务器。如何将其转换为浏览器的聊天?
我想我应该使用彗星服务器(例如 Orbited)来同时提供静态 HTML 和动态内容。快速可靠的聊天是否需要这样的彗星服务器?
【问题讨论】:
Comet 是最好的选择,无需使用任何特殊的东西(如 Flash,见下文)。这是一项经过验证的技术,已被许多大型网站使用,例如 Gmail 的聊天和 Facebook 的聊天。
您唯一的其他选项是轮询,但这有时会在服务器上变得有点紧张。你基本上必须权衡服务器负载和速度——如果你经常轮询,你会得到一个响应速度非常快的客户端,但是你会给服务器带来很多负载。轮询太少,负载很轻,但客户端只能每 n 秒接收一次消息,因此看起来很慢。
如果您决定进行投票,您可以随时创建一个“退避”系统。例如,该页面每 2 秒检查一次是否有任何聊天消息发送。它这样做了 5 次,如果什么都没有,它将延迟增加到 3 秒。它这样做了 5 次,然后什么也没做,它会持续 4 秒..等等。发送聊天消息后,它会恢复到最短延迟。
另一个更好的选择是使用 Flex 或 Flash 客户端。这样,您可以只使用仅发送数据(如果有)的 TCP 套接字。但前提是您真的想在自己的网站上安装 Flash 应用程序。
【讨论】:
是的!检查www.meebo.com!他们使用彗星作为他们的基本平台!
【讨论】: