Esempio n. 1
0
    /// <summary>
    /// 向指定的多个客户端id发送消息
    /// </summary>
    /// <param name="senderClientId">发送者的客户端id</param>
    /// <param name="receiveClientId">接收者的客户端id</param>
    /// <param name="message">消息</param>
    /// <param name="receipt">是否回执</param>
    //public void SendMessage(string senderClientId, IEnumerable<string> receiveClientId, object message, bool receipt = false)
    //{
    //    receiveClientId = receiveClientId.Distinct().ToArray();
    //    Dictionary<string, ImSendEventArgs> redata = new Dictionary<string, ImSendEventArgs>();

    //    foreach (var uid in receiveClientId)
    //    {
    //        string server = SelectServer(uid);
    //        if (redata.ContainsKey(server) == false) redata.Add(server, new ImSendEventArgs(server, senderClientId, message, receipt));
    //        redata[server].ReceiveClientId.Add(uid);
    //    }
    //    var messageJson = JsonConvert.SerializeObject(message);
    //    foreach (var sendArgs in redata.Values)
    //    {
    //        OnSend?.Invoke(this, sendArgs);
    //        _redis.Publish($"{_redisPrefix}Server{sendArgs.Server}",
    //            JsonConvert.SerializeObject((senderClientId, sendArgs.ReceiveClientId, messageJson, sendArgs.Receipt)));
    //    }
    //}

    /// <summary>
    /// 向指定的多个客户端id发送消息
    /// </summary>
    /// <param name="senderClientId">发送者的客户端id</param>
    /// <param name="receiveClientId">接收者的客户端id</param>
    /// <param name="message">消息</param>
    /// <param name="receipt">是否回执</param>
    public void SendMessage(string senderClientId, IEnumerable <string> receiveClientId, string queenName, object message, bool receipt = false)
    {
        receiveClientId = receiveClientId.Distinct().ToArray();
        Dictionary <string, ImSendEventArgs> redata = new Dictionary <string, ImSendEventArgs>();

        foreach (var uid in receiveClientId)
        {
            string server = SelectServer(uid);
            if (redata.ContainsKey(server) == false)
            {
                redata.Add(server, new ImSendEventArgs(server, senderClientId, message, receipt));
            }
            redata[server].ReceiveClientId.Add(uid);
        }
        var messageJson = JsonConvert.SerializeObject(message);

        foreach (var sendArgs in redata.Values)
        {
            try
            {
                OnSend?.Invoke(this, sendArgs);

                //交换机名称
                string          exchangeName = $"{_redisPrefix}Server{sendArgs.Server}";
                var             msg          = JsonConvert.SerializeObject((senderClientId, sendArgs.ReceiveClientId, messageJson, sendArgs.Receipt));
                IRabbitMQHelper rabbmqHelper = ServiceLocator.Instance.GetService <IRabbitMQHelper>();
                var             connection   = rabbmqHelper.CreateMQConnection();
                rabbmqHelper.SendMsg(connection, exchangeName, ExchangeType.Direct, queenName, msg, true);
            }
            catch
            {
                continue;
            }
        }
    }
Esempio n. 2
0
 public LipController(IRabbitMQHelper bus, LipHub hub)
 {
     _bus = bus;
     _hub = hub;
     //TODO: colocar na injeção de dependência
     _file = RestService.For <IFileApi>("http://file/");
 }
Esempio n. 3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="iRabbitMQHelper"></param>
 /// <param name="IProductRepository"></param>
 /// <param name="logger"></param>
 /// <param name="ISetting"></param>
 public InventoryController(IRabbitMQHelper iRabbitMQHelper, IProductRepository IProductRepository, ILog4netHelper logger, ISetting ISetting)
 {
     _iRabbitMQHelper    = iRabbitMQHelper;
     _IProductRepository = IProductRepository;
     _logger             = logger;
     _ISetting           = ISetting;
 }
Esempio n. 4
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="IRabbitMQHelper"></param>
 /// <param name="ilog4netHelper"></param>
 /// <param name="ISetting"></param>
 /// <param name="iUserRepository"></param>
 public PriceController(IRabbitMQHelper IRabbitMQHelper, ILog4netHelper ilog4netHelper, ISetting ISetting, IUserRepository iUserRepository)
 {
     _ilog4netHelper  = ilog4netHelper;
     _ISetting        = ISetting;
     _iUserRepository = iUserRepository;
     _IRabbitMQHelper = IRabbitMQHelper;
 }
Esempio n. 5
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="IRabbitMQHelper"></param>
 /// <param name="iEcmOrder"></param>
 /// <param name="logger"></param>
 /// <param name="IUserRepository"></param>
 public custom311Controller(IRabbitMQHelper IRabbitMQHelper, IEcmOrderRepository iEcmOrder, ILog4netHelper logger, IUserRepository IUserRepository)
 {
     _IRabbitMQHelper = IRabbitMQHelper;
     _iEcmOrder       = iEcmOrder;
     _logger          = logger;
     _IUserRepository = IUserRepository;
 }
Esempio n. 6
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="IRabbitMQHelper"></param>
 /// <param name="ILog4netHelper"></param>
 /// <param name="iEcmOrder"></param>
 /// <param name="IAlipayRepository"></param>
 /// <param name="IUserRepository"></param>
 public custompayController(IRabbitMQHelper IRabbitMQHelper, ILog4netHelper ILog4netHelper, IEcmOrderRepository iEcmOrder, IAlipayRepository IAlipayRepository, IUserRepository IUserRepository)
 {
     _IRabbitMQHelper   = IRabbitMQHelper;
     _ILog4netHelper    = ILog4netHelper;
     _iEcmOrder         = iEcmOrder;
     _IAlipayRepository = IAlipayRepository;
     _IUserRepository   = IUserRepository;
 }
Esempio n. 7
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="IRabbitMQHelper"></param>
 /// <param name="iEcmOrder"></param>
 /// <param name="logger"></param>
 /// <param name="IUserRepository"></param>
 /// <param name="IPayOrderRepository"></param>
 public OrdersController(IRabbitMQHelper IRabbitMQHelper, IEcmOrderRepository iEcmOrder, ILog4netHelper logger, IUserRepository IUserRepository, IPayOrderRepository IPayOrderRepository, ISetting ISetting)
 {
     _IRabbitMQHelper     = IRabbitMQHelper;
     _iEcmOrder           = iEcmOrder;
     _logger              = logger;
     _IUserRepository     = IUserRepository;
     _IPayOrderRepository = IPayOrderRepository;
     _ISetting            = ISetting;
 }
Esempio n. 8
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="IRabbitMQHelper"></param>
 /// <param name="ILog4netHelper"></param>
 /// <param name="ICustomsRepository"></param>
 /// <param name="IpayExInfoRepository"></param>
 public PayController(
     IRabbitMQHelper IRabbitMQHelper,
     ILog4netHelper ILog4netHelper,
     ICustomsRepository ICustomsRepository,
     IpayExInfoRepository IpayExInfoRepository)
 {
     _IRabbitMQHelper      = IRabbitMQHelper;
     _ILog4netHelper       = ILog4netHelper;
     _ICustomsRepository   = ICustomsRepository;
     _IpayExInfoRepository = IpayExInfoRepository;
 }
Esempio n. 9
0
        public SMARAPDAppMetricsHandleMiddleware(AppFunc next, string client, string application, string environment, int interval = 30)
        {
            _next = next;

            _container      = UnityConfig.GetMainContainer();
            _rabbitMQHelper = _container.Resolve <IRabbitMQHelper>();

            _client      = client;
            _application = application;
            _environment = environment;
            _interval    = interval;

            ApplicationMetrics();
        }
 public ConsumerService(IRabbitMQHelper mq)
 {
     this.mq = mq;
 }
Esempio n. 11
0
 public PublishService(IRabbitMQHelper mq)
 {
     this.mq = mq;
 }
 public VotesCommandHandler(IVotesRepository votesRepository, IRabbitMQHelper rabbitMQHelper)
 {
     _votesRepository = votesRepository;
     _rabbitMQHelper = rabbitMQHelper;
 }
Esempio n. 13
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="iRabbitMQHelper"></param>
 /// <param name="iUserRepository"></param>
 /// <param name="iLog4netHelper"></param>
 public UserManagerController(IRabbitMQHelper iRabbitMQHelper, IUserRepository iUserRepository, ILog4netHelper iLog4netHelper)
 {
     _iRabbitMQHelper = iRabbitMQHelper;
     _iUserRepository = iUserRepository;
     _iLog4netHelper  = iLog4netHelper;
 }
Esempio n. 14
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="logger"></param>
 /// <param name="iEcmOrder"></param>
 /// <param name="IRabbitMQHelper"></param>
 public WMSOrdersController(ILog4netHelper logger, IEcmOrderRepository iEcmOrder, IRabbitMQHelper IRabbitMQHelper)
 {
     _logger          = logger;
     _iEcmOrder       = iEcmOrder;
     _IRabbitMQHelper = IRabbitMQHelper;
 }