【发布时间】:2012-04-19 21:48:51
【问题描述】:
我有一个用 php/mysql 实现的网站,并托管在 hostmonster(共享主机)。
我计划在我的网站中加入聊天功能,使用户能够相互聊天。大约有。我的网站上有 1000 个用户。 目前,我已经实现了一个 ajax 策略,它会定期(比如每 4 秒)向服务器发送请求,以获取有关在线用户和消息的 json 响应。
这是发送请求的示例代码:
var timer, delay = 4000;
timer = setInterval(function(){
$.ajax({
type: 'POST',
url: 'update.php?user_id=2',
success: function(html){
$('.chat_messages').append(html);
}
});
}, delay);
但正如我所见,用户数量越多,每 4 秒发出的请求越多,Apache 服务器和数据库在传递响应方面的负担也越大。
所以我正在计划一个替代解决方案,它在服务器上没有开销。 我听说很少有服务器像 APE、Nginx、Node.js、StreamHub 使用 COMET/reverse ajax 技术来处理请求,并且对我的目的很有效。
但问题是,我没有权限在我的 hostmonster cpanel 上安装第三方服务器。 有没有其他方法,比如 HTML5 web sockets?
编辑:顺便说一句,如果有可行的解决方案,我也有兴趣在 Java 上重建我的应用程序。
【问题讨论】:
-
你能在你的主机上运行 PHP 守护进程吗?
-
是的,我希望 PHP 守护进程可以在我的主机上创建和运行。
-
那是哪条路呢?您可以或不能:) 我问的原因是因为这可能是您可用的解决方案(编写 PHP websocket 服务器)
-
是的,我可以在我的主机上创建和运行 php 守护进程
-
这里有一些类似的问题以及非常好的提示/指南:Scaling a chat app - Writing a chat application - Ajax Polling -
标签: php chat scalability