Ajax 高级聊天web应用程序

Ajax 高级聊天web应用程序,ajax,gmail,comet,chat,xmpp,Ajax,Gmail,Comet,Chat,Xmpp,我希望实现类似于facebook/gmail聊天的功能。我知道他们使用comet&jabber作为他们的技术。但我对一些事情感到困惑 我真的需要叽叽喳喳吗?我是否可以使用一个简单的mysql表,其中包含from、to、message、sent和recd?使用mysql有没有效率低下的地方?是否有任何性能损失 comet可以使用常规web服务器实现吗?我需要一些特殊的服务器吗?好吧,apache+php不能处理太多打开的连接?如果我使用简单的投票,会对我的系统产生不利影响吗?我可以在普通网络主机上

我希望实现类似于facebook/gmail聊天的功能。我知道他们使用comet&jabber作为他们的技术。但我对一些事情感到困惑

  • 我真的需要叽叽喳喳吗?我是否可以使用一个简单的mysql表,其中包含from、to、message、sent和recd?使用mysql有没有效率低下的地方?是否有任何性能损失

  • comet可以使用常规web服务器实现吗?我需要一些特殊的服务器吗?好吧,apache+php不能处理太多打开的连接?如果我使用简单的投票,会对我的系统产生不利影响吗?我可以在普通网络主机上使用什么开箱即用?(因为如果我出售聊天应用程序,它应该适用于大多数人。)

  • (目前)实现comet的最佳方式是什么?无限iframe是个好主意吗?php会在一段时间后超时吗?这将是一个跨浏览器的解决方案,还是我必须写一些丑陋的黑客?这会导致服务器负载增加吗?gmail和facebook在永久连接中使用了什么


  • 我认为Jabber可以安全地被概念化为(mom)中间件,而MySQL肯定是(持久存储)后端。这就是苹果和桔子

    鉴于RDMBS的ACID保证及其扩展特性所遇到的限制,没有一个超大规模的web2.0应用程序可以依赖RDBMS进行实时消息传递。(考虑动态地对SQL表进行分区以添加更多服务器,从而了解其中一个问题。)

    最重要的考虑是系统中消息的持久性。它们是要永久保存还是只在给定的时间窗口内保存。鉴于它是一个聊天应用程序,很可能是后者。为什么不使用基于内存的存储而不是RDBMS

    你为什么要用Jabber?好吧,这是一种标准,因此您将在未来打开互操作的可能性,即使这在此时不是一个问题

    更重要的是,它是一个经过长期认真开发的系统(在互联网时代),因此,可以肯定地认为它(到目前为止)是成熟的,并且将继续比您在内部设计、实施、调试和准备生产的任何系统都更加成熟


    对彗星一无所知,所以不予评论

    好问题,希望这个问题不会在周末的讨论中消失。如果你想使用flash,kirupa有一个关于如何使用PHP和套接字的很好的教程。就comet而言,我相信您必须有某种服务器实现。这就是我现在所知甚少的地方

    简单轮询示例(jquery+asp.net)

    Kirupa教程(php5插座+flash 8)

    开源flash聊天客户端(谷歌,更多)

    彗星信息

    我不是真的回答你的问题,只是告诉你更多的资源。我很好奇别人会怎么回答

    我真的需要叽叽喳喳吗?我能代替吗 使用带有from的简单mysql表, 发送到、消息、发送和记录?有 使用mysql有没有低效的地方?是 有没有性能损失

    是的,您确实需要使用jabber而不是mysql。您可以阅读Stonebraker等人的[建筑时代的结束(是时候进行完全重写了)][1],了解为什么使用RDBMS不合适的细节

    comet可以使用正则表达式实现吗 网络服务器?我需要一些吗 特殊服务器。。。我应该使用simple吗 民调,会有负面影响吗 对我的系统有什么影响?我能用什么 在普通网络主机上开箱即用? gmail和facebook在永久连接中使用了什么

    彗星是一个模糊的术语,但不用担心。你不需要特殊的服务器,你不应该使用轮询。你可以使用[BOSH][2]——这也是Facebook(我怀疑Gmail)使用的

    在客户端使用[JSJaC][3](或在Github上使用[my fork][4]),在服务器端使用[ejabberd][5]。两者都支持[BOSH][6](和[XMPP over BOSH][7]),这意味着您可以直接与XMPP服务器建立HTTP连接,避免轮询并处理高流量负载


    所有这些链接的书签都位于

    对不起,这些链接现在在delicious中不可用,请更新好吗