Pusher 不是从客户端触发的 "listening" 事件
Pusher is not "listening" events triggered from client
我正在用 laravel 和 pusher 做一个项目。
当我像这样从服务器触发事件时:
$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();
});
我正在使用状态通道,现在我想计算在线用户数,所以我正在尝试使用事件 pusher:subscription_succeeded :
channel.bind('pusher:subscription_succeeded', function(members) {
$('#count-users').text(members.count);
});
当您加载页面时,计数工作正常,但如果另一个用户连接,则不会更新前一个用户前端的计数。
我试图触发一个额外的事件:
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_succeeded 事件,您还应该绑定到 pusher:member_added 和 pusher:member_removed 事件。只有发起连接的用户会收到 susbscription_succeeded 事件。其他两个事件广播给所有连接的用户。
通过绑定到添加和删除的事件,您可以确定成员计数何时增加或减少。
您可以通过以下方式查看:
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);
});
可在此处找到完整参考:https://pusher.com/docs/client_api_guide/client_presence_channels#channel_members
我正在用 laravel 和 pusher 做一个项目。
当我像这样从服务器触发事件时:
$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();
});
我正在使用状态通道,现在我想计算在线用户数,所以我正在尝试使用事件 pusher:subscription_succeeded :
channel.bind('pusher:subscription_succeeded', function(members) {
$('#count-users').text(members.count);
});
当您加载页面时,计数工作正常,但如果另一个用户连接,则不会更新前一个用户前端的计数。 我试图触发一个额外的事件:
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_succeeded 事件,您还应该绑定到 pusher:member_added 和 pusher:member_removed 事件。只有发起连接的用户会收到 susbscription_succeeded 事件。其他两个事件广播给所有连接的用户。
通过绑定到添加和删除的事件,您可以确定成员计数何时增加或减少。
您可以通过以下方式查看:
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);
});
可在此处找到完整参考:https://pusher.com/docs/client_api_guide/client_presence_channels#channel_members