2015-08-07 3 views
0

Nous utilisons Puhser dans notre application afin d'avoir des mises à jour en temps réel.Pusher Compte sur le quota

Quelque chose de très Stange se passe - alors que Google Analytics dit que nous avons autour 200 connexions simultanées, Pusher dit que nous avons .

Je voudrais surveiller les connexions Pusher en temps réel, mais je n'ai trouvé aucune méthode pour le faire. Quelqu'un peut-il aider?

Répondre

1

Actuellement, il n'y a aucun moyen d'obtenir des statistiques en temps réel sur le nombre de connexions que vous avez actuellement ouvert pour votre application. Cependant, c'est quelque chose que nous étudions actuellement. En ce qui concerne les raisons pour lesquelles les chiffres varient entre Pusher et Google Analytics, c'est généralement dû au fait que Google Analytics utilise différentes méthodes pour déterminer si un utilisateur est ou non sur le site. Nous sommes confiants que notre compte de connexion est correct, cependant, cela ne veut pas dire qu'il n'y a pas de raison inattendue pour que votre compte soit élevé.

Une connexion est comptée comme une connexion WebSocket à Pusher. Lorsque vous utilisez la bibliothèque JavaScript Pusher, une nouvelle connexion WebSocket est créée lorsque vous créez une nouvelle instance de Pusher.

var pusher = new Pusher('APP_KEY'); 
Channel subscriptions are created over the existing WebSocket connection (known as multiplexing), and do not count towards your connection quota (there is no limit on the number allowed per connection). 

var channel1 = pusher.subscribe('ch1'); 
var channel2 = pusher.subscribe('ch2'); 

// All done over as single connection 

// more subscriptions 
// ... 

var channel 100 = pusher.subscribe('ch100'); 

// Still just a 1 connection 

raisons courantes pour lesquelles les connexions sont plus élevées que prévu

  • Les utilisateurs ouvrent plusieurs onglets

Si un utilisateur a plusieurs onglets ouverts à la même application, plusieurs instances de Pusher seront créés et donc plusieurs connexions seront utilisées par exemple 2 onglets ouverts signifie que 2 connexions sont établies.

  • applications incorrectement codées

Comme mentionné ci-dessus, une nouvelle connexion est créé à chaque fois qu'un nouvel objet Pusher est instancié. Il est donc possible de créer plusieurs connexions dans la même page.

  • En utilisant une ancienne version de l'une de nos bibliothèques

Nos stratégies de connexion se sont améliorées au fil du temps, et nous vous recommandons de rester à jour avec les dernières versions. En particulier, dans les nouvelles versions de notre bibliothèque JS, nous effectuons des requêtes ping-pong entre le serveur et le client pour vérifier que le client est toujours présent.

  • Autres remèdes

Alors que nos efforts sont toujours garder une connexion allant indéfiniment à une application, il est possible de déconnecter manuellement si vous pensez que cela fonctionne dans votre scénario. Il peut être atteint en téléphonant au Pusher.disconnect().Voici quelques exemples de code:

var pusher = new Pusher("APP_KEY"); 
var timeoutId = null; 
function startInactivityCheck() { 
    timeoutId = window.setTimeout(function(){ 
     pusher.disconnect(); 
    }, 5 * 60 * 1000); // called after 5 minutes 
}; 

// called by something that detects user activity 
function userActivityDetected(){ 
    if(timeoutId !== null) { 
     window.clearTimeout(timeoutId); 
    } 

    startInactivityCheck(); 
}; 

Comment cette déconnexion est transmise à l'utilisateur est à vous mais vous pouvez envisager de les inviter à leur faire savoir qu'ils ne recevront pas d'autres mises à jour en temps réel grâce à une longue période d'inactivité. S'ils souhaitent recommencer à recevoir des mises à jour en temps réel, ils doivent cliquer sur un bouton.