连接到SignalR服务器

时间:2017-03-09 09:51:58

标签: c# asp.net .net signalr

在服务器上我创建了一个Hub

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);
    }
}

在客户端上,我连接到Hub

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

如果服务器没有运行,并且客户端尝试连接到Hub,则应用程序挂起,如何避免这种情况?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用http serverURL

的http请求启动流程

并且仅当服务器返回确定时,才启动信号器连接流程。

答案 1 :(得分:0)

我建议将客户端连接代码放在一个线程中。这就是我做到的。每次你有一个长时间运行的任务(比如在你的情况下等待超时),你在UI线程中这样做,应用程序将冻结。