2017-01-11 40 views
0

我想要什么:订阅推送器中的私人频道后,如何获得订阅计数。其实我只想要2个用户之间的私人聊天。推者:如何在推送者中获得私人频道订阅计数?

我在做什么:。我知道我的私人频道可以由多个客户端(用户)订阅。因此,只要服务器将数据触发到私人频道,那么所有订阅的用户都可以获得该响应。

在Java脚本(客户端-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脚本频道订阅代码(客户端-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> 

服务器触发事件​​:

推动者:Event recd : {"event":"client-myEvent","data":{"message":"i am pusher client2"},"channel":"private-channel"}

然后两个客户端得到相同的响应。我只想要一个用户只订阅1个频道。

回答

1

您需要使用在线渠道才能获得有关members in a channel的信息。在你的情况下,你可以得到var count = presenceChannel.members.count;的用户数。