PusherJS 是我的新手,我正在使用PHP开发实时聊天应用程序。一切正常,但是当我按Enter键发送消息时,它会同时将其附加在发件人的盒子和收件人的盒子中。如何根据会话或 user_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);
});
答案 0 :(得分:0)
您需要限制消息发件人接收广播的消息。 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的客户端接收消息。