【发布时间】:2011-05-20 10:58:06
【问题描述】:
如何开始开发聊天 api,就像 stackoverflow 使用的那样?如果它是开源的,我在哪里可以找到它,如果没有,谁能指导我如何构建一个类似的聊天 api?
【问题讨论】:
如何开始开发聊天 api,就像 stackoverflow 使用的那样?如果它是开源的,我在哪里可以找到它,如果没有,谁能指导我如何构建一个类似的聊天 api?
【问题讨论】:
现在是彗星的时代。
Comet 是反向 ajax。如果您在聊天应用程序中使用 ajax,您需要每次都检查数据库更新,但对于 Comet,它的全部内容都与服务器端事件有关。
我们可以在@server端设置某些事件,然后它会在数据库更新时自动更新网页。也就是说我们不需要一直发出请求。
这样我们就可以避免由于大量请求而导致服务器头痛,应用程序会更快。
这是一个使用 Comet 的实时聊天示例。
看看:http://www.zeitoun.net/articles/comet_and_php/start
超越 ajax
【讨论】:
如果您不想为 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 无法处理所有流量。确保包含某种洪水检测。
【讨论】:
【讨论】:
这个聊天插件看起来像 facebook 的:http://anantgarg.com/2009/05/13/gmail-facebook-style-jquery-chat/ 这是一个教程http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=335
希望对你有帮助。
【讨论】:
我强烈建议您查看APE project。它代表 Ajax Push Engine,它使用 Comet Server 技术/技术。该项目旨在一次处理数万甚至数十万用户,并提供服务器端和 JS 接口客户端。它兼容所有主要的 JS 库。
它经过深思熟虑,干净,最重要的是免费!
我也确信存在使用它的 CMS 插件。 DrupalChat module 一直在谈论使用它。
【讨论】: