Messenger usando SignalR y Blazor Servidor Side
Utilizamos SignalR en nuestra aplicación Blazor Servidor y almacenamos todos los mensajes en la base de datos.
Para enviar un mensaje al usuario específico, usamos ConnectionID en lugar de la propiedad de usuario y luego almacenamos la ID de conexión en nuestra base de datos. Esta es una forma de crear un estado de mensajería y en línea de los usuarios. Basado en el siguiente enlace: https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/mapping-users-to-connections
El mejor enfoque para su aplicación depende de:
1- El número de servidores web que alojan su aplicación.
2- Si necesita obtener una lista de los usuarios conectados actualmente.
3- Si necesita persistir en el grupo y la información del usuario cuando se reinicia la aplicación o el servidor.
4- Si la latencia de llamar a un servidor externo es un problema.
Usamos la cuarta manera y usamos SQL Server para almacenar toda la información que necesitamos para nuestra aplicación, por ejemplo, podemos mencionar la ID de conexión o SenderuserID y RecieveruserID, y luego podemos enviar información de la conexión al remitente y la ID de usuario del receptor.