在服务器上我创建了一个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,则应用程序挂起,如何避免这种情况?
答案 0 :(得分:0)
您可以尝试使用http serverURL
并且仅当服务器返回确定时,才启动信号器连接流程。
答案 1 :(得分:0)
我建议将客户端连接代码放在一个线程中。这就是我做到的。每次你有一个长时间运行的任务(比如在你的情况下等待超时),你在UI线程中这样做,应用程序将冻结。