Messenger с использованием Signalr и Blazor Server
Мы используем SignalR в нашем приложении на стороне сервера Blazor и храним все сообщения в базе данных.
Чтобы отправить сообщение конкретному пользователю, мы используем ConnectionId вместо свойства пользователя, а затем сохраняем идентификатор соединения в нашей базе данных. Это способ создать статус пользователей Messenger и онлайн. На основе ниже ссылки: https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-pi/mapping-users-to-connections
Лучший подход для вашего приложения зависит от:
1- Количество веб-серверов, размещающих ваше приложение.
2- Независимо от того, нужно ли вам получить список подключенных в настоящее время пользователей.
3- Независимо от того, нужно ли вам сохранить групповую и пользовательскую информацию, когда приложение или сервер перезагружаются.
4.- является ли задержка вызова внешнего сервера.
Мы используем четвертый путь и используем SQL Server для хранения всей информации, которая нам нужна для нашего приложения, например, мы можем упомянуть идентификатор подключения или SenderUserid и RecieveruserId, а затем мы можем отправить информацию об подключении к идентификатору пользователя отправителя и приемлемого.