我正在制作简单的php webChat并使用MySQL数据库。我的通信基于AJAX请求,当有人发布消息时,它将被保存。
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);
}
});
}
这种方法很糟糕,因为从客户端到服务器的请求数量很多。我搜索了更好的解决方案,我找到了webSockets(WS)。我的问题是我正在使用webHosking而我只找到了LOCAL HOST教程。例如this。
所以我问是否有办法在webHosting上使用WS或者有更好/更简单的方法来执行此客户端/服务器通信。