我想要的是什么:如何在推送器中订阅私人频道后获得订阅数量。实际上,我希望只有2位用户之间进行私聊。
我所知道和做的事 :.我知道私有频道可以由多个客户端(用户)订阅。因此,只要服务器将数据触发到私有频道,那么所有订阅的用户都会得到该响应。
java脚本中的频道订阅代码(Client-1):
<!DOCTYPE html>
<head>
<title>Pusher Test</title>
<script src="https://js.pusher.com/3.2/pusher.min.js"></script>
<script>
// Enable pusher logging - don't include this in production
Pusher.logToConsole = true;
var pusher = new Pusher('PUSHER_KEY', {
authEndpoint: 'http://localhost:8080/medecube/rest/initial/pusher/auth',
auth: {
headers: {
'X-CSRF-Token': "12345"
}
}
});
var channel = pusher.subscribe('private-channel');
channel.bind('pusher:subscription_succeeded', function() {
var triggered = channel.trigger('client-myEvent', { "message": "i am pusher client1" });
});
</script>
</head>
客户2订阅的相同频道 java脚本中的频道订阅代码(Client-2):
<!DOCTYPE html>
<head>
<title>Pusher Test</title>
<script src="https://js.pusher.com/3.2/pusher.min.js"></script>
<script>
// Enable pusher logging - don't include this in production
Pusher.logToConsole = true;
var pusher = new Pusher('PUSHER_KEY', {
authEndpoint: 'http://localhost:8080/medecube/rest/initial/pusher/auth',
auth: {
headers: {
'X-CSRF-Token': "12345"
}
}
});
var channel = pusher.subscribe('private-channel');
channel.bind('pusher:subscription_succeeded', function() {
var triggered = channel.trigger('client-myEvent', { "message": "i am pusher client2" });
});
</script>
</head>
服务器触发事件:
Pusher:Event recd : {"event":"client-myEvent","data":{"message":"i am pusher client2"},"channel":"private-channel"}
然后两个客户端得到相同的响应。我只希望一个用户订阅1个频道。
答案 0 :(得分:1)
您需要使用状态频道来获取有关members in a channel的信息。在您的情况下,您可以使用var count = presenceChannel.members.count;
获得订阅者数量。
答案 1 :(得分:1)
可以获得私人频道的订阅计数,您不必使用在线频道。但是,要获得私人频道的订阅计数,您必须通过Pusher控制台明确启用该功能,因为默认情况下未启用该功能: