Estoy creando una aplicación web usando Asp.net zero [versión 10.2.0] con ABP Framework versión 6.2 Frontend está en Angular 11 y Backend API en Asp.net core 5.0 mientras que el sitio web público está en Asp.net MVC.
Estoy tratando de buscar usuarios registrados tanto en la interfaz (Angular) como en el sitio web público (Asp.net MVC) usando SignalR para mostrarlo en el panel de administración. Ambos están usando los mismos ABPUsers de la tabla db. ¿Alguien ha hecho algo similar usando SignalR u otra forma?
Cualquier ayuda apreciada
Hice algo similar con SignalR en ASP.NET (no Core). Sobrecargué los métodos OnConnected y OnDisconnected en la clase Hub para mantener mi propio Diccionario de clientes conectados.
Cada cliente tiene un encabezado con su información de inicio de sesión. En OnConnected , analizaría el encabezado y verificaría si este cliente ya está conectado. Si no lo son, los agregaría al diccionario. En OnDisconnected , verificaría si este cliente está conectado y, de ser así, lo eliminaría del diccionario. De esta forma, el diccionario siempre tiene los clientes conectados.
Nota: debido a que se crea un nuevo Hub para cada nuevo inicio de sesión, el diccionario debe ser único o estático. Yo uso un ConcurrentDictionary estático .
Nota 2: SignalR tiene una estructura interna para almacenar todos los clientes, pero no es posible buscar fácilmente sin modificar la biblioteca y tiene métodos públicos muy limitados. Es por eso que usé mi propio Diccionario.