/// <summary> /// 订阅消息 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="fail"></param> /// <param name="exchange"></param> public void Subscribe <T>(Action fail = null, string exchange = ExchangeTypeCode.Direct) where T : class, IBaseMqMessage { MQEventSource <T> mqEventSource = new MQEventSource <T>(); MQEventListener <T> mqMsgEventListener = new MQEventListener <T>(mqMsgHandler); this.Logger(this.GetType(), "订阅消息-Subscribe", () => { //订阅事件 mqMsgEventListener.Subscribe(mqEventSource); rabbitMqService.Subscribe <T>(msg => { if (msg != null) { mqEventSource.RaiseNewMsgEvent(msg); } }, exchange); }, e => { mqEventSource.RaiseErrorMsgEvent(e.ToString()); if (fail != null) { fail.Invoke(); } }); }
private MQEventListener listener; //MQEventListener //建構子 public MSMQSender(MQEventListener eventlistener, String InputHostName, String InputQueueName) { this.hostName = InputHostName; //設定hostName this.queueName = InputQueueName; //設定queueName listener = eventlistener; //MQEventListener connect(); //連線 }
//建構子 public IBMMQSender(MQEventListener eventlistener) { MQEnvironment.Hostname = hostName; //設定MQ的hostName MQEnvironment.Channel = channelName; //設定MQ的channelName MQEnvironment.Port = port; //設定MQ的port listener = eventlistener; //Listener connect(); //連線 }
//建構子 public MSMQReceiver(MQEventListener eventlistener) { listener = eventlistener; //MQEventListener connect(); //連線 Thread startreceive = new Thread(receive); //宣告Thread來執行無窮迴圈的receive startreceive.Start(); //執行Thread Thread checkConnect = new Thread(checkconnect); //宣告Thread來執行無窮迴圈的checkConnect checkConnect.Start(); //執行Thread }
//建構子 public IBMMQSender(MQEventListener eventlistener, String hostName, String channelName, int port) { this.hostName = hostName; //設定host Name this.channelName = channelName; //設定channelName this.port = port; //設定port MQEnvironment.Hostname = hostName; //設定MQ的hostName MQEnvironment.Channel = channelName; //設定MQ的channelName MQEnvironment.Port = port; //設定MQ的port listener = eventlistener; //Listener connect(); //連線 }
//建構子 public MSMQReceiver(MQEventListener eventlistener, String InputHostName) { this.hostName = InputHostName; //設定hostName listener = eventlistener; //MQEventListener connect(); //連線 Thread startreceive = new Thread(receive); //宣告Thread來執行無窮迴圈的receive startreceive.Start(); //執行Thread Thread checkConnect = new Thread(checkconnect); //宣告Thread來執行無窮迴圈的checkConnect checkConnect.Start(); //執行Thread }
//建構子 public IBMMQReceiver(MQEventListener eventlistener) { MQEnvironment.Hostname = hostName; //設定MQ host Name MQEnvironment.Channel = channelName; //設定MQ channel Name MQEnvironment.Port = port; //設定MQ port listener = eventlistener; //Listener connect(); //連線 Thread startreceive = new Thread(receive); //宣告Thread來執行receive startreceive.Start(); //開始執行Thread Thread checkConnect = new Thread(checkconnect); //宣告Thread來執行checkconnect checkConnect.Start(); //開始執行Thread }
private MQEventListener listener; //Listener //建構子 public IBMMQReceiver(MQEventListener eventlistener, String hostName, String channelName, int port, String queueManegerName, String queueName) { this.hostName = hostName; //設定host Name this.channelName = channelName; //設定channel Name this.port = port; //設定port this.queueManagerName = queueManegerName; //設定queue Manager Name this.queueName = queueName; //設定queue Name MQEnvironment.Hostname = hostName; //設定MQ host Name MQEnvironment.Channel = channelName; //設定MQ channel Name MQEnvironment.Port = port; //設定MQ port listener = eventlistener; //Listener connect(); //連線 Thread startreceive = new Thread(receive); //宣告Thread來執行receive startreceive.Start(); //開始執行Thread Thread checkConnect = new Thread(checkconnect); //宣告Thread來執行checkconnect checkConnect.Start(); //開始執行Thread }
//建構子 public MSMQSender(MQEventListener eventlistener) { listener = eventlistener; //MQEventListener connect(); //連線 }