То же сообщение в чате отправителя и получателя в php pusher.js - PullRequest
0 голосов
/ 14 мая 2019

Я новичок в PusherJS и занимаюсь разработкой приложения для чата в реальном времени с использованием PHP.Все работает нормально, но когда я нажимаю клавишу ВВОД, чтобы отправить сообщение, оно добавляет его в поле отправителя, а также в поле получателя.Как я могу дифференцировать это на основе сеанса или user_id .См. Там же сообщение отправителя и получателя: enter image description here

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);
});

1 Ответ

0 голосов
/ 15 мая 2019

Вам необходимо ограничить отправителя сообщения от приема транслируемого сообщения. Как это сделать, описано на веб-сайте Pusher .

Во-первых, вам нужно сохранить 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.

...