SignalRConnection 1.0.7
Encapsula a criação de conexões e chamada aos métodos de um serviço SignalR.
Ex.: SignalRCreateConnection exemploHub = new SignalRCreateConnection("http://localhost:8082/signalr", "ExampleHub");
SignalRCreateConnection notificationHub = new SignalRCreateConnection(host, "NotificationHub");
1- "Invocando um método no server SignalR"
Task<string> date = exemploHub.Invoke<string>("GetDateTimeFormated");
Console.WriteLine(date.Result);
2- Registrando-se para um evento
notificationHub.On<string>("getNewGuid", d =>
{
Console.WriteLine(d);
});
3- Verificar disponibilidade do serviço
if(notificationHub.ServerOnline)
{
Console.WriteLine("Serviço OnLine");
}
Install-Package SignalRConnection -Version 1.0.7
dotnet add package SignalRConnection --version 1.0.7
<PackageReference Include="SignalRConnection" Version="1.0.7" />
paket add SignalRConnection --version 1.0.7
#r "nuget: SignalRConnection, 1.0.7"
SignalRConnection
- Encapsula a criação de conexões e chamada aos métodos de um serviço SignalR.
Exemplo
- SignalRCreateConnection
class Pessoa
{
public string Nome { get; set; }
public string Endereco { get; set; }
public string Telefone { get; set; }
public int CartaoCredito { get; set; }
}
class Program
{
private static string host = "http://localhost:8082/signalr";
static void Main()
{
Task.Factory.StartNew(() => OnExempleHub());
Task.Factory.StartNew(() => InvokeExempleHub());
Task.Factory.StartNew(() => InvokeNotificationHub());
Console.ReadKey();
}
private static void OnExempleHub()
{
Task.Factory.StartNew(() =>
{
SignalRCreateConnection notificationHub = new SignalRCreateConnection(host, "ExampleHub");
notificationHub.On<string>("listenDateTime", d =>
{
Console.WriteLine(d);
});
notificationHub.On<string>("getNewGuid", g =>
{
Console.WriteLine(g);
});
do
{
//executar alguma ação caso o serviço esteja indisponível
if (!notificationHub.ServerOnline)
{
Console.WriteLine("Server SignalR OffLine.");
}
Thread.Sleep(2000);
} while (true);
});
Console.ReadKey();
}
private static void InvokeNotificationHub()
{
SignalRCreateConnection notificationHub = new SignalRCreateConnection(host, "NotificationHub");
while (true)
{
notificationHub.Invoke("SendNewGuid");
Task<Pessoa> pessoa = notificationHub.Invoke<Pessoa>("GetPessoa");
if (!notificationHub.ServerOnline)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"Server OffLine -> {(string.IsNullOrEmpty(pessoa.Result.Nome) ? "No Connection - Result [GetPessoa]: Null" : "Connected - Result [GetPessoa]: " + pessoa.Result.Nome)}");
}
else
{
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine($"Server OnLine -> {(string.IsNullOrEmpty(pessoa.Result.Nome) ? "No Connection - Result [GetPessoa]: Null" : "Connected - Result [GetPessoa]: " + pessoa.Result.Nome)}");
}
Thread.Sleep(1000);
}
}
private static void InvokeExempleHub()
{
SignalRCreateConnection exemploHub = new SignalRCreateConnection(host, "ExampleHub");
while (true)
{
Task<string> date = exemploHub.Invoke<string>("GetDateTimeFormated");
if (!exemploHub.ServerOnline)
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"Server OffLine -> {(string.IsNullOrEmpty(date.Result) ? "No Connection - Result [GetDateTimeFormated]: Null" : "Connected - Result [GetDateTimeFormated]: " + date.Result)}");
}
else
{
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine($"Server OnLine -> {(string.IsNullOrEmpty(date.Result) ? "No Connection - Result [GetDateTimeFormated]: Null" : "Connected - Result [GetDateTimeFormated]: " + date.Result)}");
}
Thread.Sleep(1000);
}
}
}
Referências
- SignalR (https://www.asp.net/signalr)
- Topshelf (http://topshelf-project.com/index.html)
- Log4net (https://logging.apache.org/log4net/)
- SimpleInjector (https://simpleinjector.readthedocs.io/en/latest/webapiintegration.html)
SignalRConnection
- Encapsula a criação de conexões e chamada aos métodos de um serviço SignalR.
Exemplo
- SignalRCreateConnection
class Pessoa
{
public string Nome { get; set; }
public string Endereco { get; set; }
public string Telefone { get; set; }
public int CartaoCredito { get; set; }
}
class Program
{
private static string host = "http://localhost:8082/signalr";
static void Main()
{
Task.Factory.StartNew(() => OnExempleHub());
Task.Factory.StartNew(() => InvokeExempleHub());
Task.Factory.StartNew(() => InvokeNotificationHub());
Console.ReadKey();
}
private static void OnExempleHub()
{
Task.Factory.StartNew(() =>
{
SignalRCreateConnection notificationHub = new SignalRCreateConnection(host, "ExampleHub");
notificationHub.On<string>("listenDateTime", d =>
{
Console.WriteLine(d);
});
notificationHub.On<string>("getNewGuid", g =>
{
Console.WriteLine(g);
});
do
{
//executar alguma ação caso o serviço esteja indisponível
if (!notificationHub.ServerOnline)
{
Console.WriteLine("Server SignalR OffLine.");
}
Thread.Sleep(2000);
} while (true);
});
Console.ReadKey();
}
private static void InvokeNotificationHub()
{
SignalRCreateConnection notificationHub = new SignalRCreateConnection(host, "NotificationHub");
while (true)
{
notificationHub.Invoke("SendNewGuid");
Task<Pessoa> pessoa = notificationHub.Invoke<Pessoa>("GetPessoa");
if (!notificationHub.ServerOnline)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"Server OffLine -> {(string.IsNullOrEmpty(pessoa.Result.Nome) ? "No Connection - Result [GetPessoa]: Null" : "Connected - Result [GetPessoa]: " + pessoa.Result.Nome)}");
}
else
{
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine($"Server OnLine -> {(string.IsNullOrEmpty(pessoa.Result.Nome) ? "No Connection - Result [GetPessoa]: Null" : "Connected - Result [GetPessoa]: " + pessoa.Result.Nome)}");
}
Thread.Sleep(1000);
}
}
private static void InvokeExempleHub()
{
SignalRCreateConnection exemploHub = new SignalRCreateConnection(host, "ExampleHub");
while (true)
{
Task<string> date = exemploHub.Invoke<string>("GetDateTimeFormated");
if (!exemploHub.ServerOnline)
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"Server OffLine -> {(string.IsNullOrEmpty(date.Result) ? "No Connection - Result [GetDateTimeFormated]: Null" : "Connected - Result [GetDateTimeFormated]: " + date.Result)}");
}
else
{
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine($"Server OnLine -> {(string.IsNullOrEmpty(date.Result) ? "No Connection - Result [GetDateTimeFormated]: Null" : "Connected - Result [GetDateTimeFormated]: " + date.Result)}");
}
Thread.Sleep(1000);
}
}
}
Referências
- SignalR (https://www.asp.net/signalr)
- Topshelf (http://topshelf-project.com/index.html)
- Log4net (https://logging.apache.org/log4net/)
- SimpleInjector (https://simpleinjector.readthedocs.io/en/latest/webapiintegration.html)
Release Notes
- Disponibilizada propriedade para indicar conexão com o serviço [IsConnected].
Dependencies
-
- log4net (>= 2.0.8)
- Microsoft.AspNet.SignalR.Client (>= 2.2.2)
Used By
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.