2017-03-09 2 views
2

auf dem Server anschließen erstelle ich einen Hubzu einem SignalR Server

public class SGHub : Hub 
{ 
    public static List<string> Users = new List<string>(); 

    public void Send(string name, string message) 
    { 
     Clients.All.broadcastMessage(name, message); 
     Console.WriteLine(SGHub.Users.Count); 
    } 
} 

Auf der Client-I an den Hub anschließen

void Start() 
{ 
    hubConnection = new HubConnection(serverURL); 
    hubConnection.Error += HubConnectionError; 
    iHubProxy = hubConnection.CreateProxy("SGHub"); 
    Subscription subscription = iHubProxy.Subscribe("broadcastMessage"); 
    hubConnection.Start(); 
} 

Wenn der Server nicht läuft, und der Client versucht, eine Verbindung an den Hub hängt die Anwendung, wie kann man das vermeiden?

+0

Wie lange hängt der Client? Ich benutze auch SignalR und ich habe die clientside Verbindung in einem Thread versuchen, um dies zu vermeiden. Wenn du das willst, kann ich meinen Code posten. Hatte nie Probleme mit eingefrorenen Apps. –

+0

Ich führe den Client aus und versuche, eine Verbindung mit dem Hub herzustellen, der nicht ausgeführt wird. Der Client nach 'hubConnection.Start();' reagiert nach 5-10 Sekunden nicht und Windows bietet an, die Anwendung zu schließen. Wenn es nicht schwierig ist, geben Sie bitte ein Beispiel im Code. – zRirez

Antwort

0

Sie können versuchen, Fluss mit einer HTTP-Anforderung zu serverURL

zu starten und nur, wenn Server gibt Ok, starten Sie signalr Verbindung fließen.

0

Ich würde vorschlagen, Sie clientside Verbindungscode in einem Thread zu setzen. So habe ich es gemacht. Jedes Mal, wenn Sie eine lange laufende Aufgabe haben (z. B. Warten auf eine Zeitüberschreitung in Ihrem Fall), und Sie dies im UI-Thread tun, wird die App einfrieren.

+0

Der Client ist in Unity 3D, ich weiß nicht, oder es ist möglich, einen zusätzlichen Thread darin zu erstellen. – zRirez

+0

Das Backend ist in C#, oder? Zumindest der Code, den Sie gezeigt haben ist C# –

+0

Ja, Backend ist in C# – zRirez

Verwandte Themen