Pusher:如何在推送中获得私人频道订阅数量?

时间:2017-01-11 09:56:05

标签: javascript java jax-rs pusher

我想要的是什么:如何在推送器中订阅私人频道后获得订阅数量。实际上,我希望只有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个频道。

2 个答案:

答案 0 :(得分:1)

您需要使用状态频道来获取有关members in a channel的信息。在您的情况下,您可以使用var count = presenceChannel.members.count;获得订阅者数量。

答案 1 :(得分:1)

可以获得私人频道的订阅计数,您不必使用在线频道。但是,要获得私人频道的订阅计数,您必须通过Pusher控制台明确启用该功能,因为默认情况下未启用该功能:

https://pusher.com/docs/rest_api#method-get-channel