как показать в реальном времени изменения в базе данных на Android от веб-API asp.net - PullRequest
0 голосов
/ 05 сентября 2018

Я разрабатываю веб-сервис приложения для Android с помощью веб-интерфейса asp.net
В андроиде надо программировать: пользователи и магазины
магазины должны видеть последний запрос пользователя в своем приложении
Например, я являюсь пользователем и хочу купить некоторые вещи, такие как рис, после того как я отправлю запрос на сервер, он сохранится в базе данных. после этого магазины, которые находятся рядом с моим местоположением, должны увидеть мой запрос
Моя проблема в том, как я могу проверить новые запросы пользователей и отправить их в магазины в режиме реального времени?
я должен использовать signalR? идентификатор да как?
примечание: я написал алгоритм получения рядом с магазином, и у меня просто проблема в том, как отправить
мой пример кода:

using System;
using System.Collections.Generic;
using System.Device.Location;
using System.Globalization;
using System.Linq;
using WebService.Models.Domain;
using Microsoft.AspNet.SignalR;

namespace WebService
{
    public class MyHub : Hub
    {
        private readonly mydb db = new mydb();

        public void Send(string storeToken)
        {
            try
            {
                if (storeToken != null)
                {
                    ......
                    ......
                    ......

                                if (distanceInMeter < maxStoreDistance)
                                {
                                    var obj = new GetBuy
                                    {
                                        buy = new AllBuy
                                        {
                                            id = newBuyRequest.Id,
                                            longitude = newBuyRequest.longitude ?? 0,
                                            latitude = newBuyRequest.latitude ?? 0,
                                            time = Convert.ToString(newBuyRequest.time, CultureInfo.InvariantCulture),
                                            price = newBuyRequest.price ?? 0,
                                            distanceInMeter = distanceInMeter
                                        }
                                    };

                                    resultList.Add(obj.buy);
                                }



                        Clients.All.sendToShop(resultList);
                    }
                }

                Clients.All.sendToShop("error");
            }
            catch (Exception)
            {
                Clients.All.sendToShop("error");
            }
        }

        //************************************
        private class GetBuy
        {
            public AllBuy buy;
        }
        private class AllBuy
        {
            public int id;
            public double longitude;
            public double latitude;
            public string time;
            public double price;
            public double distanceInMeter;
        }
    }
}
...