コード例 #1
0
 /// <summary>
 ///     功能:创建一个 Publisher 实例
 /// </summary>
 /// <param name="messageQueue">mq 连接</param>
 /// <param name="queueName">队列名称</param>
 public ActiveMessageQueueMessagePublishers(ActiveMessageQueue messageQueue, string queueName)
 {
     m_messageQueue    = messageQueue;
     m_publishers      = new Dictionary <string, ActiveMessageQueueMessagePublisher>(StringComparer.OrdinalIgnoreCase);
     m_channelDeliver  = messageQueue.GetChannelDeliver();
     m_receiverDeliver = messageQueue.GetReceiverDeliver();
     foreach (var connectionPair in messageQueue.GetConnections())
     {
         var publisher = new ActiveMessageQueueMessagePublisher(connectionPair.Value, queueName);
         m_publishers[connectionPair.Key] = publisher;
     }
 }
コード例 #2
0
 /// <summary>
 ///     功能:初始化组件
 /// </summary>
 void IComponent.Init()
 {
     foreach (var kv in Channels)
     {
         var channel           = kv.Value;
         var connecturi        = new Uri(channel.Uri);
         var connection        = default(IConnection);
         var connectionFactory = new ConnectionFactory(connecturi);
         if (string.IsNullOrEmpty(channel.UserName))
         {
             connection = connectionFactory.CreateConnection();
         }
         else
         {
             connection = connectionFactory.CreateConnection(channel.UserName, channel.Password ?? "");
         }
         connection.Start();
         m_connections[kv.Key] = connection;
         var conn = connection as Connection;
         if (conn != null && IsAsync)
         {
             conn.AsyncSend     = true;
             conn.AsyncClose    = true;
             conn.SendAcksAsync = true;
         }
         if (ChannelDelivers != null)
         {
             m_channelDeliver = new CompositeChannelDeliver();
             foreach (JObject deliver in ChannelDelivers)
             {
                 ((CompositeChannelDeliver)m_channelDeliver).Add(CreateChannelDeliver(deliver));
             }
         }
         if (ReceiverDelivers != null)
         {
             m_receiverDeliver = new CompositeReceiverDeliver();
             foreach (JObject deliver in ReceiverDelivers)
             {
                 ((CompositeReceiverDeliver)m_receiverDeliver).Add(CreateReceiverDeliver(deliver));
             }
         }
     }
 }
コード例 #3
0
 /// <summary>
 ///  功能:添加一个消息通道分发器
 /// </summary>
 /// <param name="channelDeliver">消息通道分发器</param>
 public void Add(IActiveMqChannelDeliver channelDeliver)
 {
     m_channelDelivers.Add(channelDeliver);
 }
コード例 #4
0
 /// <summary>
 /// 功能:设置队列分发器
 /// </summary>
 /// <param name="channelDeliver"></param>
 public void SetChannelDeliver(IActiveMqChannelDeliver channelDeliver)
 {
     m_channelDeliver = channelDeliver;
 }