javascript - 在 JavaScript 事件上更新与 MySQL 的聊天

标签 javascript php mysql ajax

我正在尝试制作一个聊天系统,任何人都可以进入聊天并发送消息。消息存储在 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/

相关文章:

javascript插入html代码

php - Laravel 将所有父类别显示为特定子类别的树

PHP/JS - 游戏排行榜

php - PHP 检测文件是否完整或部分

php - 为什么 PHP 的 preg_quote 会转义不必要的字符?

php - 根据外部来源插入、更新或删除记录的正确方法是什么?

mysql - Sequelize : Deep population association join query

Javascript 高级 console.log

javascript - 获取 HTML DOM 元素并将其设置为输入标签的值

javascript - 为所有表单元素添加一个 onBlur