我打算在我的网站上建立一个网络聊天。我知道这样做的两种方式:一种是使用XMPP Web客户端(通过flash,长TCP连接),另一种是facebook方式,长轮询。
但Facebook会更新他们的聊天以支持Jabber(XMPP),那么有人可以说出更好的方法吗? (包括升级到XMPP)
答案 0 :(得分:2)
在我的应用程序中进行长轮询时,我的结果非常好,但更大的问题是你是否要面对C10K problem。如果是这样,那么构建代码来处理那种繁重的工作负载可能会主导所有其他设计考虑因素,至少在短期内如此。 : - )
除了服务器负载之外,使用策略的主要考虑因素是客户端环境兼容性 - 能够从仅允许HTTP的严格防火墙或在禁止任何插件的浏览器环境中工作,长轮询是唯一的生存方式,但它比简单的TCP连接方法有更多的开销。
答案 1 :(得分:0)
它们有不同的优点和缺点,例如:TCP需要一个插件(至少在HTML5网络套接字得到广泛支持之前),长轮询性能较差等等。我不是这种差异的专家,这就是为什么我我建议你避免做出这个选择,避免开发和调整每种方法,避免将来可用技术的变化(即HTML5到达),使用抽象的库使用的传输方法,并根据客户端功能选择最佳方法:
这个精彩的图书馆让创建实时应用程序非常简单!并且有各种服务器端实现:Python(Tornado),Java,Google GO,Rack(Ruby),以及Node.js中的主流实现(服务器端JavaScript)