Я создаю приложение отслеживания местоположения пользователя для клиента.
Я получаю местоположение через клиента (Android) с использованием метода SignalR Hub и сохраняю в MongoDb
Мой код
public async Task UpdateLocation(double latitude, double longitude)
{
await _mediator.Send(new UpdateLocationRequestModel()
{
Latitude = latitude,
Longitude = longitude,
UserId = Context.User.GetUserId()
});
}
Теперь я хочу, чтобы другой Клиент (Интернет) просматривал обновления определенного пользователя c в реальном времени.
Как я могу это сделать?
Мое теоретическое решение
Я думал о создании метода в Hub, так как когда клиент (Web) нажимает кнопку, метод будет называться
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)
}
Я не проверял это, но есть ли лучший способ?