2016-07-25 5 views
0

Avec mon programme SignalR, mon client appelait une méthode côté serveur. Mes variables globales ne fonctionnaient pas correctement alors j'ai fait un petit test rapide et j'ai compris que les variables globales semblaient être réinitialisées à chaque fois, je me demandais ce que je faisais de mal et si je pouvais empêcher la réinitialisation de mes variables.Les variables SignalR sont en cours de réinitialisation

JavaScript Méthode:

$.connection.hub.start().done(function() { 
      $('#send').click(function() { 
       chat.server.send(0, document.getElementById("Name").value, document.getElementById("Content").value);//send eventually calls broadcastArray 

      }); 
     }); 

Hub Méthode:

int i = 0; 
    public void BroadcastArray() 
    { 
     var hubContext = GlobalHost.ConnectionManager.GetHubContext<ChatHub>(); 
     hubContext.Clients.All.broadcastArray(messageArr); 
     i = i + 1; 
    } 

Peu importe combien de fois j'ai appelé la méthode i a toujours été retourné comme 1, comment puis-je arrêter les variables d'être remis à zéro? Existe-t-il un moyen de le faire dans la classe hub ou devrais-je stocker mes variables dans une classe différente? Je ne suis pas tout à fait sûr de savoir comment s'y prendre.

Répondre

1

La première chose que je ferais est de le mettre dans un try/catch pour voir si son lancer une erreur avant qu'il n'atteigne cette ligne. Je pourrais lancer une exception silencieusement si votre hubcontext n'est pas retourné correctement.

Deuxièmement votre hub est-il une classe statique? Sans voir comment vous configurez votre hub c'est difficile de dire ce qui pourrait mal se passer.