Javascript PHP聊天客户端服务器通信
我正在制作简单的php webChat并使用MySQL数据库。我的通信基于AJAX请求,当有人发布消息时,它将被保存Javascript PHP聊天客户端服务器通信,javascript,php,mysql,client-server,Javascript,Php,Mysql,Client Server,我正在制作简单的php webChat并使用MySQL数据库。我的通信基于AJAX请求,当有人发布消息时,它将被保存 function sendData(){ var textData = $('#chatText').val(); console.log(textData); $.ajax({ type:'POST', url:'saveMessage.php', data: { message:textData
function sendData(){
var textData = $('#chatText').val();
console.log(textData);
$.ajax({
type:'POST',
url:'saveMessage.php',
data: {
message:textData
},
dataType: 'text',
success: function(data){
$('#sendInfo').html(data);
},
error: function(/*jqXHR, exception"*/ts){
$('#sendInfo').html("Error send" + ts.responseText);
}
});
}
消息由另一个请求从数据库加载,其中设置了一个计时器,该计时器每1秒在服务器上发送一次请求
$( document ).ready(function(){
setInterval(check, 1000);
});
function check(){
$.ajax({
type:'GET',
url:'checkMessages.php',
dataType:'json',
success: function(result){
//$("#messageBox").append(result);
for(var i in result){
$("#messageBox").append(result[i].email + ": " + result[i].mesgVal + "<br>");
}
},
error: function(/*jqXHR, exception"*/ts){
$('#sendInfo').html("Error check " + ts.responseText);
}
});
}
$(文档).ready(函数(){
设置间隔(检查,1000);
});
函数检查(){
$.ajax({
类型:'GET',
url:'checkMessages.php',
数据类型:'json',
成功:功能(结果){
//$(“#消息框”).append(结果);
for(结果中的var i){
$(“#messageBox”).append(结果[i]。电子邮件+”:“+result[i]。mesgVal+”
”;
}
},
错误:函数(/*jqXHR,异常“*/ts){
$('#sendInfo').html(“错误检查”+ts.responseText);
}
});
}
这种方法不好,因为从客户端到服务器的请求数量太多。我搜索了更好的解决方案,找到了WebSocket(WS)。我的问题是我使用webHosking,只找到了本地主机教程。例如
因此,我想问的是,是否有一种在Web主机上使用WS的方法,或者有更好/更简单的方法来实现客户机/服务器通信。如果您需要坚持使用PHP,那么我建议使用。这是一种比当前更好、更有效的解决方案
您可以在PHP中找到一个很好的长轮询示例。您可以使用socket.io在前端和后端之间设置一个常量。您将在该链接中找到有关如何在PHP中实现它的更多信息