Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP聊天客户端服务器通信_Javascript_Php_Mysql_Client Server - Fatal编程技术网

Javascript PHP聊天客户端服务器通信

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

我正在制作简单的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);
            }   
    });
}
$(文档).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中实现它的更多信息