根据需要创建聊天系统并不难,但您必须知道自己在做什么。您首先需要一个文件,该文件将在您单击用户时最初加载聊天。
加载聊天
function loadChat (userid) {
$.get("/ajax/getChat.php", {
userid: userid
}, function (data) {
//add the chat
});
}
然后,您将需要能够 ping 聊天,以便您可以接收新消息。我建议使用Web 套接字或更简单的方法server-sent events。我不建议投票。
平聊
服务器发送的事件可能如下所示:
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。
您应该为消息设置 1 个表。给对话一个独特的id
,然后从那里开始。与实际的 JavaScript 相比,您需要在服务器端做更多的事情。
在使用服务器发送的事件和 AJAX 之前,我已经创建了一个聊天。大多数逻辑都在服务器端。
我不确定这是否有帮助,但我认为这可能会给您一些想法。