开发类似Stackoverflow的Chat API

时间:2010-12-05 07:10:25

标签: php api chat

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

5 个答案:

答案 0 :(得分:10)

现在是彗星的时间 彗星是反向ajax。如果你在聊天应用程序中使用ajax,你需要每次都检查数据库更新,但在彗星的情况下,它是关于服务器端事件的。

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

因此,我们可以避免因大量请求而导致服务器问题,并且应用程序将会非常快。

这是使用彗星的实时聊天示例 检查出来:http://www.zeitoun.net/articles/comet_and_php/start

超越ajax

答案 1 :(得分: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无法处理所有流量。确保包含某种洪水检测。

答案 2 :(得分:1)

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

AJAX Chat

希望它有所帮助,祝你好运!

答案 3 :(得分:1)

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

我希望它有所帮助。

答案 4 :(得分:1)

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

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

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