我有一个在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网络套接字吗?
编辑:顺便说一下,如果有可行的解决方案,我也有兴趣在Java上重建我的应用程序。
答案 0 :(得分:2)
当您想出要求每个用户4秒的新内容时,不会缩放。它甚至不适用于聊天应用程序,因为消息之间的延迟太长,导致聊天无法使用。
如果我是你,我会首先研究不需要任何(或很少)编程的插入式聊天解决方案。您通常只是在页面中插入一些JavaScript代码,而提供聊天的第三方会完成所有其他操作(提供文件,运行聊天服务器等等)。我没有使用任何可用的解决方案,所以我不推荐任何解决方案,但快速谷歌搜索产生了这个:https://www.meebo.com/websites/这应该让你大致了解我在说什么。
如果以上情况不适合您,那么您前面有一个相当大的项目。您需要做的是编写一个websocket服务器(然后是您的聊天应用程序)。如果我想解释如何对你这么做,我可以写一本关于它的书,所以我只想说:谷歌是你的朋友。你不是第一个需要这个的人。因此,搜索stackoverflow以获取提示,并且还有开源PHP websocket服务器(this being one)。
祝你好运。