Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “推送者”不是“推送者”;“倾听”;从客户端触发的事件_Javascript_Laravel_Pusher_Real Time Updates - Fatal编程技术网

Javascript “推送者”不是“推送者”;“倾听”;从客户端触发的事件

Javascript “推送者”不是“推送者”;“倾听”;从客户端触发的事件,javascript,laravel,pusher,real-time-updates,Javascript,Laravel,Pusher,Real Time Updates,我正在和拉威尔和普什做一个项目 当我从服务器触发事件时,如下所示: $pusher = new Pusher(env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID'), array('cluster' => env('PUSHER_CLUSTER'))); $pusher->trigger('presence-chat', 'MessageSent', array('message' => 'me

我正在和拉威尔和普什做一个项目

当我从服务器触发事件时,如下所示:

$pusher = new Pusher(env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID'), array('cluster' => env('PUSHER_CLUSTER')));
$pusher->trigger('presence-chat', 'MessageSent', array('message' => 'mensaje enviado'));
我可以这样听:

var channel = pusher.subscribe('presence-chat');
channel.bind('MessageSent', function(data) {
    comprobar_mensajes();
});
我正在使用状态频道,现在我想对在线用户进行计数,因此我尝试使用事件推送器:subscription\u Successed:

加载页面时,计数正常工作,但如果其他用户连接,则不会更新前一个用户前端的计数。 我试图触发一个额外的事件:

channel.bind('pusher:subscription_succeeded', function(members) {
  $('#count-users').text(members.count);
  channel.trigger('client-test',{ your: data });
});

channel.bind('client-test', function(data) {
    $('#count-users').text(members.count);
    alert('recibido');
});

但是我从来没有收到过警告。

除了绑定到pusher:subscription\u successed事件之外,您还应该绑定到pusher:member\u added和pusher:member\u remove事件。只有启动连接的用户才会收到SUBScription_Successed事件。其他两个事件将广播给所有连接的用户

通过绑定到添加和删除的事件,您可以确定成员计数何时增加或减少

您可以通过以下方式进行检查:

channel.bind('pusher:subscription_succeeded', function(members) {
  console.log(members.count);
});
channel.bind('pusher:member_added', function(member) {
  console.log(channel.members.count);
});

channel.bind('pusher:member_removed', function(member) {
  console.log(channel.members.count);
});

可以在这里找到完整的参考资料:

在向用户显示之前,您是否增加了成员数?如果我没有错,我不必这样做。“members.count”总是给出成员的实际大小。事实上,在加载页面上,它可以工作,但不能实时更新。
channel.bind('pusher:subscription_succeeded', function(members) {
  console.log(members.count);
});
channel.bind('pusher:member_added', function(member) {
  console.log(channel.members.count);
});

channel.bind('pusher:member_removed', function(member) {
  console.log(channel.members.count);
});