我正在尝试制作一个聊天系统,任何人都可以进入聊天并发送消息。消息存储在 MySQL 数据库中,目前我的代码如下所示......
<script>
$('input[type=text]').on('keydown', function(e) {
if(e.which == 13) {
e.preventDefault();
$.ajax({
url: "php/chat.class.php",
data: { steamid: "<?php echo $steamprofile['steamid']?>", message: document.getElementById("chatMessage").value },
type: "GET",
context: document.body
}).done(function() {
alert("Message sent");
// This is when the chat should update for everyone
}).error(function() {
document.getElementById('chat-box').innerHTML += '<span class="text-muted"><i>Could not send chat message at this time.</i></span>';
});
}
});
基本上,一旦您按下回车键,它就会在 MySQL 表中插入一个新行。
因为这是一个适合所有人的聊天室,所以我需要在任何人发送消息时为每个用户更新聊天室。
我知道如何显示所有消息以及发送消息的人,但我需要在有人发送消息时为所有人更新它。
我已经进行了研究,但不幸的是我找不到任何有用的东西,现在我一无所知。
我想过每 x 秒更新一次聊天,但我想让聊天尽可能流畅和快速,并且想知道最好的解决方案是什么。
祝你有个美好的一天
最佳答案
所以这是一个读操作,因此你正在尝试的是一个写操作。您可以使用间隔/超时/对服务器进行连续查找,或者在上次调用完成时启动休息调用(无论是成功/错误/超时)。但更好的方法是启动一个 WebSocket 客户端并在后端创建和设置 WebSocket 服务器并正确设计它,因此如果它从任何客户端收到任何消息,它将发送给所有其他客户端或优化器/或中的某些东西日程安排
关于javascript - 在 JavaScript 事件上更新与 MySQL 的聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44686909/