2016-07-25 26 views
0

Mit meinem SignalR-Programm habe ich meinen Client eine serverseitige Methode aufrufen lassen. Meine globalen Variablen funktionierten nicht richtig, also machte ich einen kleinen Test und ich fand heraus, dass die globalen Variablen jedes Mal zurückgesetzt wurden. Ich fragte mich, was ich falsch mache und ob ich meine Variablen davon abhalten könnte, zurückgesetzt zu werden.SignalR Variablen werden zurückgesetzt

JavaScript-Methode:

$.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 Methode:

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

Egal wie oft ich die Methode genannt i immer als 1 zurückgegeben wurde, wie kann ich verhindern, die Variablen zurückgesetzt wird? Gibt es eine Möglichkeit, dies in der Hub-Klasse zu tun, oder würde ich meine Variablen in einer anderen Klasse speichern? Ich bin mir nicht sicher, wie ich das anstellen soll.

Antwort

1

Das erste, was ich tun würde, ist es in einen Versuch/Catch zu sehen, ob es einen Fehler wirft, bevor es zu dieser Linie kommt. Ich könnte stillschweigend eine Ausnahme auslösen, wenn Ihr Hubkontext nicht korrekt zurückgegeben wird.

Zweitens ist Ihr Hub eine statische Klasse? Ohne zu sehen, wie Sie Ihren Hub einrichten, ist es schwer zu sagen, was schief gehen könnte.