public async Task CreateRoomAsync(int roomCode, Action <Guid, RoomMember, int> returnAction) { _hub.Remove("ConnectedToRoom"); await _hub.SendAsync("CreateRoomAsync", roomCode); _hub.On("ConnectedToRoom", returnAction); _hub.On("SendInfo", OnInfo); }
public async Task ConnectStatusStreamAsync() { if (_connectionConfig.ServerMode == "v1") { // older signalr client/server _legacyConnection = new Microsoft.AspNet.SignalR.Client.HubConnection(_statusHubUri); _legacyConnection.Credentials = System.Net.CredentialCache.DefaultCredentials; var hubProxy = _legacyConnection.CreateHubProxy("StatusHub"); hubProxy.On<ManagedCertificate>(Providers.StatusHubMessages.SendManagedCertificateUpdateMsg, (u) => OnManagedCertificateUpdated?.Invoke(u)); hubProxy.On<RequestProgressState>(Providers.StatusHubMessages.SendProgressStateMsg, (s) => OnRequestProgressStateUpdated?.Invoke(s)); hubProxy.On<string, string>(Providers.StatusHubMessages.SendMsg, (a, b) => OnMessageFromService?.Invoke(a, b)); _legacyConnection.Reconnecting += OnConnectionReconnecting; _legacyConnection.Reconnected += OnConnectionReconnected; _legacyConnection.Closed += OnConnectionClosed; await _legacyConnection.Start(); } else { // newer signalr client/server // TODO: auth: https://docs.microsoft.com/en-us/aspnet/core/signalr/authn-and-authz?view=aspnetcore-3.1 connection = new HubConnectionBuilder() .WithUrl(_statusHubUri) .WithAutomaticReconnect() .AddMessagePackProtocol() .Build(); connection.Closed += async (error) => { await Task.Delay(new Random().Next(0, 5) * 1000); await connection.StartAsync(); }; connection.On<RequestProgressState>(Providers.StatusHubMessages.SendProgressStateMsg, (s) => { OnRequestProgressStateUpdated?.Invoke(s); }); connection.On<ManagedCertificate>(Providers.StatusHubMessages.SendManagedCertificateUpdateMsg, (u) => { OnManagedCertificateUpdated?.Invoke(u); }); connection.On<string, string>(Providers.StatusHubMessages.SendMsg, (a, b) => { OnMessageFromService?.Invoke(a, b); }); await connection.StartAsync(); } }
public HubClient(NavigationManager navigationManager) { var hubConnection = new HubConnectionBuilder() .WithUrl(navigationManager.ToAbsoluteUri("/hub")) .WithAutomaticReconnect() .Build(); _hub = hubConnection; _hub.Reconnected += OnConnectionStateChanged; _hub.Closed += InvokeConnectionStateChanged; _hub.Reconnecting += InvokeConnectionStateChanged; StartConnection(); _hub.On <RoomMember>("JoinedRoom", async(arg) => await OnPeerJoinedRoom(arg)); _hub.On <AnswerRequest>("SendAnswer", async(arg) => await OnAnswerReceived(arg)); _hub.On <RTCIceCandidate, Guid>("NewIce", async(arg1, arg2) => await OnIceCandidate(arg1, arg2)); }
public async Task OnInitializedAsync() { _hubConnection = new HubConnectionBuilder().Build(); _hubConnection.On <Message>("ReceiveMessage", (message) => { _messages.Add(message); }); await _hubConnection.StartAsync(); }
public async void connectButton() { connection.On <string, string, int>("ReceiveMessage", (user, message, clientCount) => { if (Guid.Parse(user) == GuidId) { MessageManager.Instance.WriteSuccessLine($"我: {message} 当前在线【{clientCount}】"); } else { MessageManager.Instance.WriteInfoLine($"{user}: {message} 当前在线【{clientCount}】"); } }); //服务注册通知 connection.On <int>("RegisterNotice", (message) => { MessageManager.Instance.WriteSuccessLine($"连接成功,当前在线客户端总数:{message.ToString()}"); }); //系统通知 connection.On <string>("ServerNotice", (message) => { MessageManager.Instance.WriteWarningLine($"系统通知:{message.ToString()}"); }); try { await connection.StartAsync(); Register(); } catch (Exception ex) { MessageManager.Instance.WriteErrorLine(ex.ToString()); Reconnection(1); } }
public async Task ConnectStatusStreamAsync() { if (_connectionConfig.ServerMode == "v1") { // older signalr client/server _legacyConnection = new Microsoft.AspNet.SignalR.Client.HubConnection(_statusHubUri); _legacyConnection.Credentials = System.Net.CredentialCache.DefaultCredentials; var hubProxy = _legacyConnection.CreateHubProxy("StatusHub"); hubProxy.On <ManagedCertificate>(Providers.StatusHubMessages.SendManagedCertificateUpdateMsg, (u) => OnManagedCertificateUpdated?.Invoke(u)); hubProxy.On <RequestProgressState>(Providers.StatusHubMessages.SendProgressStateMsg, (s) => OnRequestProgressStateUpdated?.Invoke(s)); hubProxy.On <string, string>(Providers.StatusHubMessages.SendMsg, (a, b) => OnMessageFromService?.Invoke(a, b)); _legacyConnection.Reconnecting += OnConnectionReconnecting; _legacyConnection.Reconnected += OnConnectionReconnected; _legacyConnection.Closed += OnConnectionClosed; await _legacyConnection.Start(); } else { // newer signalr client/server // TODO: auth: https://docs.microsoft.com/en-us/aspnet/core/signalr/authn-and-authz?view=aspnetcore-3.1 connection = new HubConnectionBuilder() .WithUrl(_statusHubUri, opts => { opts.HttpMessageHandlerFactory = (message) => { if (message is System.Net.Http.HttpClientHandler clientHandler) { if (_connectionConfig.AllowUntrusted) { // allow invalid tls cert clientHandler.ServerCertificateCustomValidationCallback += (sender, certificate, chain, sslPolicyErrors) => { return(true); }; } } return(message); }; }) .WithAutomaticReconnect() .AddMessagePackProtocol() .Build(); connection.Closed += async(error) => { await Task.Delay(new Random().Next(0, 5) * 1000); await connection.StartAsync(); }; connection.On <RequestProgressState>(Providers.StatusHubMessages.SendProgressStateMsg, (s) => { OnRequestProgressStateUpdated?.Invoke(s); }); connection.On <ManagedCertificate>(Providers.StatusHubMessages.SendManagedCertificateUpdateMsg, (u) => { OnManagedCertificateUpdated?.Invoke(u); }); connection.On <string, string>(Providers.StatusHubMessages.SendMsg, (a, b) => { OnMessageFromService?.Invoke(a, b); }); await connection.StartAsync(); } }