PHP and JQuery Chat


PHP and JQuery Chat

我正在创建一个社交网络类型的交易,我想添加一个聊天功能。

目前我有一个home.php,上面有一个朋友列表,朋友列表是通过jQuery和php加载的,比如:

function LoadList() {
    $.get("friends_feed.php",
        function (data) {
            $('div#friendsfeed').html(data);
        }
    );
}

对于每个加载到列表中的朋友,我想让它在你点击他们的名字时创建一个固定在屏幕底部的div,这个div将是一个聊天框。我希望能够简单地通过PHP和Ajax加载它。如何处理?

编辑:我只想在两个人之间聊天。用户和他们的朋友。

创建一个想要的聊天系统并不太难,但你必须知道自己在做什么。您首先需要一个文件,当您单击用户时,该文件将初始加载聊天。

加载聊天

function loadChat (userid) {
    $.get("/ajax/getChat.php", {
        userid: userid
    }, function (data) {
        //add the chat
    });
}

然后你需要能够ping聊天,这样你就可以接收新的消息。我建议使用web套接字或更简单的方法,即服务器发送事件。我不建议投票。

Ping聊天

服务器发送的事件可能看起来像:

var pinger = new EventSource("/ajax/pingMessages/" + userid);
pinger.onmessage = function (data) {
    data = data.data;
    // append messages
};

虽然SSE的支持不如使用AJAX进行轮询,但它们工作得更好,并允许您与服务器保持开放连接,从而最终节省资源。有一些SSE的多边形填充,你可以查看。

您还需要一个发送功能。

发送消息

function send (userid) {
    $.post("/ajax/send.php", {
        userid: userid,
        message: $.trim($('.chat[data-id*="'+ userid +'"] input[type="text"]').val())
    });
}

注意所有这些请求都只接受userid。在服务器端,您可以考虑当前用户id。

您应该为消息设置一个表。给对话一个独特的id,然后从那里开始。与实际的JavaScript相比,您需要在服务器端做更多的工作。

在使用服务器发送的事件和AJAX之前,我已经创建了一个聊天。大部分逻辑都在服务器端。

我不确定这是否有帮助,但我想这可能会给你一个小主意。