public void StartLintening(IHandleData_TemplateMethod handleData_Template_method) { m_trackDataChannel = m_connection.CreateModel(); m_trackDataChannel.ExchangeDeclare(exchange: "LucidTrackData", type: ExchangeType.Fanout); m_trackDataChannel.QueueDeclare(queue: "track", durable: false, exclusive: false, autoDelete: true, arguments: null); m_trackDataChannel.QueueBind(queue: "track", exchange: "LucidTrackData", routingKey: ""); var consumer = new EventingBasicConsumer(m_trackDataChannel); consumer.Received += (model, ea) => { byte[] data = ea.Body.ToArray(); handleData_Template_method.HandleData(data); }; m_trackDataChannel.BasicConsume(queue: "track", autoAck: false, consumer: consumer); }
public void StartLintening(IHandleData_TemplateMethod handleData_Template_method) { m_worker = new Thread(() => { while (m_workerFlag) { byte[] buffer = new byte[SUBSEGMENT_LENGHT]; m_socket.Receive(buffer); handleData_Template_method.HandleData(buffer); } }); m_workerFlag = true; m_worker.Start(); }