我在AspNet Core C#中有一个应用程序(服务器),当服务器上进行IP交换时,该应用程序需要通知Xamarin表单(客户端)应用程序。 我目前使用SignalR进行实时通信。但是,当它更改服务器的IP时,此通信将丢失。 目前,我无法使用DNS名称。 我该如何解决这个问题? 是否可以使用SignalR做到这一点,还是应该寻找其他组件?
//Client Code
public static async Task SetupSignalR()
{
try
{
if (hubConnection == null || hubConnection.State == ConnectionState.Disconnected)
{
hubConnection = new HubConnection(Configuracao.ServerUrl + "");
var notificaoHub = hubConnection.CreateHubProxy("NotificacaoHub");
var inicializar = App.Container.Get<IInicializacaoService>();
notificaoHub.On("NotificacaoTrocaIpServidor", NotificacaoTrocaIpServidor);
await hubConnection.Start();
}
}
catch (Exception ex)
{
App.RegistrarErro(ex.Message, ex);
}
}
//Server Code
public void ConfigurarIpServidor(DtoConfigurarIpServidorRequest dto)
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<NotificacaoHub>();
context.Clients.All.NotificacaoTrocaIpServidor();
}