【问题标题】:Same message in sender and receiver chat in pusher.js phppusher.js php中发送者和接收者聊天中的相同消息
【发布时间】:2019-10-01 20:45:51
【问题描述】:

我是 PusherJS 的新手,并使用 PHP 开发实时聊天应用程序。一切正常,但是当我按 Enter 发送消息时,它会将其附加到发件人的框中,也附加到收件人的框中。我如何根据 sessionuser_id 来区分它。看到有相同的消息是发送者和接收者的盒子:

Real-Time.php:

$options = array(
    'cluster' => 'ap2',
    'useTLS' => true
);
$pusher = new Pusher\Pusher(
    'c575a7********edb87d',
    '8fee27********57fdd2',
    '7***6*',
    $options
);
$pusher->trigger('channel', 'event', $data);

.js 文件:

var pusher = new Pusher('c575a76********db87d', {
    cluster: 'ap2',
    forceTLS: true
});
var channel = pusher.subscribe('channel');
channel.bind('event', function(data) {

    var msg_template = ``; //<-- Just removed template it's simple HTML

    $("ul#messages").append(msg_template);
});

【问题讨论】:

标签: javascript php real-time pusher pusher-js


【解决方案1】:

您需要限制消息发送者接收广播消息。如何执行此操作记录在 Pusher website 上。

首先,连接Channels时需要存储SocketID:

var pusher = new Pusher('APP_KEY');
var socketId = null;
pusher.connection.bind('connected', function() {
  socketId = pusher.connection.socket_id;
});

一旦找到,您可以在发送到服务器的事件中使用它:

data: {
      id: 'some_id',
      updated_value: 'some_value',
      socket_id: socketId // pass socket_id parameter to be used by server
    }

这将阻止具有该 socketId 的客户端接收消息。

【讨论】:

    猜你喜欢
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2017-09-26
    • 1970-01-01
    相关资源
    最近更新 更多