1

我有一个用 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 上重建我的应用程序。

4

1 回答 1

2

正如您所发现的那样,为每个用户每 4 秒请求新内容将无法扩展。它甚至不适用于聊天应用程序,因为消息之间的延迟太长,导致您的聊天无法使用。

如果我是您,我会首先研究不需要您进行任何(或很少)编程的插入式聊天解决方案。您通常只需在页面中插入一些 JavaScript 代码,提供聊天的第三方会完成所有其余的工作(提供文件、运行聊天服务器等...)。我没有使用任何可用的解决方案,所以我不能推荐任何解决方案,但是快速的谷歌搜索得到了这个:https ://www.meebo.com/websites/这应该让你大致了解我是什么谈论。

如果上述内容不适合您,那么您面前有一个相当大的项目。你需要做的是编写一个 websocket 服务器(然后是你的聊天应用程序)。如果我想向你解释如何做到这一点,我可以写一本关于它的书,所以我只会这样说:谷歌是你的朋友。你不是第一个需要这个的人。因此,在 stackoverflow 中搜索提示,并且那里也有开源 PHP websocket 服务器(这是一个)。

祝你好运。

于 2012-04-06T08:26:15.597 回答