public void Init(string ip, bool isBlazor = false) { hubConnection = new HubConnectionBuilder() .WithUrl($"http://{ip}:5000/hubs/chat") .Build(); hubConnection.Closed += async(error) => { OnConnectionClosed?.Invoke(this, new MessageEventArgs("Connection closed...")); IsConnected = false; await Task.Delay(random.Next(0, 5) * 1000); try { await ConnectAsync(); } catch (Exception ex) { // Exception! } }; hubConnection.On <string, string>("ReceiveMessage", (user, message) => { var finalMessage = $"{user} says {message}"; OnReceivedMessage?.Invoke(this, new MessageEventArgs(finalMessage)); }); hubConnection.On <string>("EnteredOrLeft", (message) => { OnEnteredOrExited?.Invoke(this, new MessageEventArgs(message)); }); }
public void Init(string urlRoot, bool useHttps) { random = new Random(); var port = (urlRoot == "localhost" || urlRoot == "10.0.2.2") ? (useHttps ? ":5001" : ":5000") : string.Empty; var url = $"http{(useHttps ? "s" : string.Empty)}://{urlRoot}{port}/hubs/chat"; hubConnection = new HubConnectionBuilder() .WithUrl(url) .WithAutomaticReconnect() .Build(); hubConnection.Closed += async(error) => { OnConnectionClosed?.Invoke(this, new MessageEventArgs("Connection closed...", string.Empty)); IsConnected = false; await Task.Delay(random.Next(0, 5) * 1000); try { await ConnectAsync(); } catch (Exception ex) { // Exception! Debug.WriteLine(ex); } }; hubConnection.On <string, string>("ReceiveMessage", (user, message) => { OnReceivedMessage?.Invoke(this, new MessageEventArgs(message, user)); }); hubConnection.On <string>("Entered", (user) => { OnEnteredOrExited?.Invoke(this, new MessageEventArgs($"{user} entered.", user)); }); hubConnection.On <string>("Left", (user) => { OnEnteredOrExited?.Invoke(this, new MessageEventArgs($"{user} left.", user)); }); hubConnection.On <string>("EnteredOrLeft", (message) => { OnEnteredOrExited?.Invoke(this, new MessageEventArgs(message, message)); }); }
public void Init(string urlRoot, string portNumber, bool useHttps) { //-----ITvitae server url = "10.10.1.34"-----// //-----ITvitae server port = "4444"-----// string url = $"http{(useHttps ? "s" : String.Empty)}://{urlRoot}:{portNumber}/hubs/chat"; //string url = $"http://{urlRoot}:{portNumber}/hubs/chat"; // Setup the hubconnection with the newly created url hubConnection = new HubConnectionBuilder() .WithUrl(url) .Build(); // Initialize random so we can use it to randomize colors random = new Random(); // Setup the hubConnection events hubConnection.Closed += async(error) => { OnConnectionClosed?.Invoke(this, new MessageEventArgs("Connection closed...", DateTime.Now, string.Empty)); IsConnected = false; // Wait a little and try to reconnect await Task.Delay(random.Next(0, 5) * 1000); try { await ConnectAsync(); } catch (Exception ex) { Debug.WriteLine(ex); } }; // Receive message hubConnection.On <string, DateTime, string>("ReceiveMessage", (user, dateTime, message) => { OnReceivedMessage?.Invoke(this, new MessageEventArgs(user, dateTime, message)); }); // Receive file hubConnection.On <string, DateTime, string, string>("ReceiveFile", (user, dateTime, folderName, fileName) => { OnReceivedFile?.Invoke(this, new FileEventArgs(user, dateTime, folderName, fileName)); }); // Entered hubConnection.On <string, DateTime>("Entered", (user, dateTime) => { OnEnteredOrExited?.Invoke(this, new MessageEventArgs(user, dateTime, $"{user} entered.")); }); // Exited hubConnection.On <string, DateTime>("Left", (user, dateTime) => { OnEnteredOrExited?.Invoke(this, new MessageEventArgs(user, dateTime, $"{user} left.")); }); // Entered or left ??? <--- WTF (vanuit tutorial, geen idee waar voor nodig) hubConnection.On <string, DateTime>("EnteredOrLeft", (message, dateTime) => { OnEnteredOrExited?.Invoke(this, new MessageEventArgs("???Someone???", dateTime, message)); }); }