【问题标题】:Developing Chat API like that of Stackoverflow [closed]开发类似于 Stackoverflow 的聊天 API [关闭]
【发布时间】:2011-05-20 10:58:06
【问题描述】:

如何开始开发聊天 api,就像 stackoverflow 使用的那样?如果它是开源的,我在哪里可以找到它,如果没有,谁能指导我如何构建一个类似的聊天 api?

【问题讨论】:

    标签: php api chat


    【解决方案1】:

    现在是彗星的时代。
    Comet 是反向 ajax。如果您在聊天应用程序中使用 ajax,您需要每次都检查数据库更新,但对于 Comet,它的全部内容都与服务器端事件有关。

    我们可以在@server端设置某些事件,然后它会在数据库更新时自动更新网页。也就是说我们不需要一直发出请求。

    这样我们就可以避免由于大量请求而导致服务器头痛,应用程序会更快。

    这是一个使用 Comet 的实时聊天示例。
    看看:http://www.zeitoun.net/articles/comet_and_php/start

    超越 ajax

    【讨论】:

    • 过去几天我想知道这样的事情是否可行?我想我会得到与客户端向服务器发送请求的客户端-服务器模型相反的答案。很高兴知道彗星。会试试的。谢谢西林
    • @Sandeepan Nath :Welcome.Dnt 忘记宣传我了。好吗?
    • @sirin,这个使用prototype作为库,用jquery可以吗?
    • @mrNepal:Ya 当然。在该示例中,原型用于在客户端实现 ajax 引擎。所以你只需用 jquery 替换它。我希望它也很容易使用 jquery 实现 ajax 引擎作为原型。
    • 你知道我可以检查任何关于彗星和 jquery 的演示
    【解决方案2】:

    如果您不想为 COMET 的复杂性而烦恼,您可以使用 jQuery 的 AJAX 功能构建一个非常简单的 PHP 聊天室。无论服务器端 API 是什么样子,您都可以在客户端使用 jQuery 与它进行交互。

    客户端可以像这样使用 jQuery 代码轮询服务器:

    $(document).everyTime(pillowchat.settings.message_poll_frequency, function() {
         if(pillowchat.state.poll == true){    
            getMessages();
        }
    }); 
    

    jQuery POST 请求可以这样发送:

    $.post("chat.php", {
        "attribute":"important string"
    },
    function(data){ 
        response = JSON.parse(data);
        processNewMessages(response);
    });
    

    它们可能是对新消息、活跃用户的请求,或包含来自客户端的新消息。

    服务器上的 API 可以通过一百万种不同的方式实现。我使用 PHP 和 CouchDB 编写了一个简单的聊天,效果很好。更多详细信息和源代码可在此处获得:http://trillworks.com/nick/2011/08/13/pillowchat-how-not-to-build-a-chat-room-with-jquery-phpillow-and-couchdb/

    如果您预计房间内的人数超过 30 人,我不推荐这种方法。在对该设计进行压力测试时,我发现 apache 无法处理所有流量。确保包含某种洪水检测。

    【讨论】:

      【解决方案3】:

      我与 SO 聊天没什么关系,但这可能是一个开始,它是开源的,在我看来真的很好。

      AJAX Chat

      希望对你有帮助,祝你好运!

      【讨论】:

        【解决方案4】:

        这个聊天插件看起来像 facebook 的:http://anantgarg.com/2009/05/13/gmail-facebook-style-jquery-chat/ 这是一个教程http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=335

        希望对你有帮助。

        【讨论】:

        • 所以,Facebook 聊天也使用 ajax 请求来填充聊天框
        • 在 Firefox 中打开这个例子,然后你控制台 firebug 来查看 ajax 请求。 anantgarg.com/chat/samplea.php
        • 好的,但是我正在寻找类似SO的聊天,您的参考真的很有帮助,但我也需要群聊
        【解决方案5】:

        我强烈建议您查看APE project。它代表 Ajax Push Engine,它使用 Comet Server 技术/技术。该项目旨在一次处理数万甚至数十万用户,并提供服务器端和 JS 接口客户端。它兼容所有主要的 JS 库。

        它经过深思熟虑,干净,最重要的是免费!

        我也确信存在使用它的 CMS 插件。 DrupalChat module 一直在谈论使用它。

        【讨论】:

          猜你喜欢
          • 2012-02-03
          • 2011-09-27
          • 1970-01-01
          • 2023-03-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-31
          相关资源
          最近更新 更多