/// <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)); } } } }
/// <summary> /// 功能:添加一个消息接收者分发器 /// </summary> /// <param name="deliver">消息接收者分发器</param> public void Add(IActiveMQReceiverDeliver deliver) { m_delivers.Add(deliver); }
/// <summary> /// 功能:设置接收者分发器 /// </summary> /// <param name="receiverDeliver"></param> public void SetReceiverDeliver(IActiveMQReceiverDeliver receiverDeliver) { m_receiverDeliver = receiverDeliver; }