我正在尝试将推送器应用到laravel应用程序中。具体来说,我想在用户登录时创建一个私人频道。
我有一个公共频道“登录”,其中有一个名为“登录事件”的事件,每次有人登录时都会触发该事件。
我遇到的问题是,应该创建和订阅私有频道的触发器仅针对已登录的用户触发。而不是刚刚登录的用户,这是我实际需要的唯一用户跑去。
Pusher.js
$(function () {
var pusher = new Pusher('XXXXXXXXXX');
var channel = pusher.subscribe('login-channel');
channel.bind('login-event', function(data) {
// NOT RUNNING FOR USER WHO JUST LOGGED IN BUT RUNS FOR EVERYONE ELSE
var user = data.content.userID;
var newpusher = new Pusher('XXXXXXXXXXX', {
userid: $('meta[name="user"]').attr('content'),
authEndpoint: '/pusher/auth',
auth: {
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
}
});
var newchannel = newpusher.subscribe('private-channel-for-'+user+'');
console.log('Setting up a channel for user '+user+'.');
});
我需要在上面的代码中使用“login-event”来为刚刚登录的用户运行。
我已尽可能多地查看文档,如果答案显然在那里,请随时提供链接,但如果我能在代码中得到建议,那将会很棒。