繁体   English   中英

Ajax,php,mysql聊天

[英]Ajax, php, mysql chat

我是Ajax的新手,并且想知道这种方法是否足以创建聊天应用程序。 我的问题是:如果我要说一百万用户,Ajax + php + mysql是否会出现性能问题? 它会滞后吗? 我可以扩展吗?

这是我的代码:

     var inty = setInterval(function()
  {

  var qt = document.getElementById("friend_name_goes_here").innerHTML;
  xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("chat_div").innerHTML = this.responseText;
    }
  };
  xhttp.open("GET", "getchat.php?q="+qt+"&w="+me_name, true);
  xhttp.send();
  //console.log(qt);
}, 300);

这是ajax部分,然后在“getchat.php”是我将查询数据库的地方。

我对此非常陌生。 任何指导将不胜感激!

mysql行看起来像这样:John - Hallo,Bob!

鲍勃 - 约翰,你不明白阿贾克斯!

对于像实时聊天这样的事情,Ajax方法非常糟糕。 你的PHP脚本将被频繁调用,它将是非常重的超载..

出于您的目的,我会推荐WebSocket。

https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications

您需要使用彗星服务器将服务器发送的消息发送给其他客户端。

在您的rialization中,每秒对服务器的查询过多。 用户将收到间隔为300毫秒的消息,但如果您将使用彗星服务器,将立即收到用户的消息。

您将在php共享主机或小型vps中在10或20个用户的在线性能上遇到问题。

例如,您可以使用本教程关于在PHP中使用CppComet

CppComet将通过带有javascript的websockets安装持久连接。 当您需要向其他用户发送任何消息时,您可以使用PHP代码中的api向CppComet发送请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM