Я создаю приложение для отслеживания местоположения пользователя для клиента.
Я получаю местоположение через клиент (Android), используя метод концентратора SignalR и сохраняя в MongoDb
Мой код
public async Task UpdateLocation(double latitude, double longitude)
{
await _mediator.Send(new UpdateLocationRequestModel()
{
Latitude = latitude,
Longitude = longitude,
UserId = Context.User.GetUserId()
});
}
Теперь я хочу, чтобы другой клиент (Интернет) просматривал обновления определенного пользователя в режиме реального времени.
Как я могу это сделать?
Мое теоретическое решение
Я думал о создании метода в концентраторе, когда клиент (Интернет) нажимает кнопку, метод будет вызываться
public async Task ShowUser(string userId)
{
//Add To Redis Cache ('track',userId)
}
public async Task UpdateLocation(double latitude, double longitude)
{
await _mediator.Send(new UpdateLocationRequestModel()
{
Latitude = latitude,
Longitude = longitude,
UserId = Context.User.GetUserId()
});
// Check Redis Cahce for 'track'
// Send Data to Client(Web)
}
Я не проверял это, но есть ли лучший способ?