Ajax、php、mysql 聊天
Ajax, php, mysql chat
我是 Ajax 的新手,想知道这种方法是否足以创建聊天应用程序。我的问题是:如果我有 100 万用户,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 行如下所示:
约翰 - 你好,鲍勃!
鲍勃-约翰,你不懂ajax!
Ajax 这种方法对于实时聊天之类的事情非常不利。
您的 php 脚本将被非常频繁地调用,并且会非常重载..
为了您的目的,我推荐 WebSocket。
您将需要使用 Comet 服务器将消息从服务器传送到其他客户端。
在你的 rialization 中,每秒对服务器的查询太多。并且用户将以 300 毫秒的间隔接收消息,但是如果您将使用彗星服务器,用户将立即收到消息。
在 php 共享主机或小型 vps 中,10 或 20 个在线用户的性能会出现问题。
例如,您可以将 this tutorial about using CppComet 与 php 一起使用。
CppComet 将使用 javascript 通过 websockets 安装持久连接。当您需要向其他用户发送任何消息时,您可以使用 api 从 php 代码向 CppComet 发送请求。
我是 Ajax 的新手,想知道这种方法是否足以创建聊天应用程序。我的问题是:如果我有 100 万用户,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 行如下所示:
约翰 - 你好,鲍勃!
鲍勃-约翰,你不懂ajax!
Ajax 这种方法对于实时聊天之类的事情非常不利。 您的 php 脚本将被非常频繁地调用,并且会非常重载..
为了您的目的,我推荐 WebSocket。
您将需要使用 Comet 服务器将消息从服务器传送到其他客户端。
在你的 rialization 中,每秒对服务器的查询太多。并且用户将以 300 毫秒的间隔接收消息,但是如果您将使用彗星服务器,用户将立即收到消息。
在 php 共享主机或小型 vps 中,10 或 20 个在线用户的性能会出现问题。
例如,您可以将 this tutorial about using CppComet 与 php 一起使用。
CppComet 将使用 javascript 通过 websockets 安装持久连接。当您需要向其他用户发送任何消息时,您可以使用 api 从 php 代码向 CppComet 发送请求。