javascript - PHP聊天客户端-服务器通信

标签 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
        },
        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 来实现,或者有更好/更简单的方法来进行此客户端/服务器通信。

最佳答案

如果您需要坚持使用 PHP,那么我建议使用 long polling 。这是一个比当前解决方案更好、更有效的解决方案。

您可以在 PHP 中找到一个很好的长轮询示例 here .

关于javascript - PHP聊天客户端-服务器通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35135286/

相关文章:

javascript - 当我删除重复项时,为什么会得到 NaN 值以及魔方打乱生成器的末尾?

javascript - 使用 SAPUI5 项目的 sap.ui.ux3.Shell 时无法在 iPhone 上滚动

php - 按 bool 字段对关联数组进行排序

php - Zend FR finfo 错误警告 : string extension `B' invalid

mysql - 如何去掉结束日期字段

mysql - 在mysql中用数字和字符对列进行排序

PHP MySQL 在一个字段中搜索多个值

javascript - 如何让软键盘在页面加载时自动显示?

javascript - Facebook Connect 用于具有多个域的一个应用程序?

php - 什么时候以及为什么我应该在 php 中使用类?