【问题标题】:how to my receiver is typing a message and show on my browser我的接收者如何输入消息并在我的浏览器上显示
【发布时间】:2016-10-29 08:49:50
【问题描述】:

我想检查用户正在输入消息并想在我的聊天框中显示它,我知道设置数据库标志并通过 timeinterval 函数检查它,但我认为它应该是慢速方法,有什么方法可以检查它?通过用户的机器 ip/id 。

【问题讨论】:

  • 使用 websocket 会更有效率。
  • 怎么用?你能给我推荐一个更好的吗?

标签: javascript php sql ajax


【解决方案1】:

您好,请使用Websocket

使用此链接这将对您有所帮助 https://www.sanwebe.com/2013/05/chat-using-websocket-php-socket

【讨论】:

    【解决方案2】:

    您可以在您的服务器上实现 Web 套接字,这样您就可以在您的客户端和服务器之间传递事件。

    您可以检查 Ratchet:http://socketo.me/ 用于 php 或 Socket.io 用于 Nodejs。

    你可以在“keyup”上绑定一个事件来通知服务器输入,我建议限制事件,这样你就不会以太多的请求结束:)

    【讨论】:

    • 是的,当然,如果你必须这样做的话。由于您只想在用户输入时显示您可以在服务器上接收此输入事件并将其广播回在线用户,而无需存储在数据库中。但是如果你愿意,你当然不能将它存储在数据库中并在以后检索它。
    • 您也可以在整个聊天应用程序中使用 websocket,因此您必须在发送的每条消息上刷新客户端上的数据,只需从新消息的服务器发布套接字事件。
    【解决方案3】:

    我认为 socket.io 是你要找的 http://socket.io/get-started/chat/

    【讨论】:

      【解决方案4】:

      我发现使用套接字是实现这一目标的唯一好方法。 https://wisembly.github.io/elephant.io/.

      PHP服务器端:

      use ElephantIO\Client as Elephant;
      
      $elephant = new Elephant('http://localhost:8000', 'socket.io', 1, false, true, true);
      
      $elephant->init();
      $elephant->send(
          ElephantIOClient::TYPE_EVENT,
          null,
          null,
          json_encode(array('name' => 'foo', 'args' => 'bar'))
      );
      $elephant->close();
      
      echo 'tryin to send `bar` to the event `foo`';
      

      Socket.io 服务器端:

      var io = require('socket.io').listen(8000);
      
      io.sockets.on('connection', function (socket) {
        console.log('user connected!');
      
         socket.on('foo', function (data) {
           console.log('here we are in action event and data is: ' + data);
         });
      });
                          
                      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-01
        • 1970-01-01
        • 2022-11-30
        • 1970-01-01
        • 2019-01-12
        • 2019-07-04
        • 1970-01-01
        • 2022-01-21
        相关资源
        最近更新 更多