/// <summary> /// Initializes a Kinect Bag Receiver /// </summary> /// <param name="ipAddress">IP address of the RabbitMq server</param> /// <param name="exchange">Exchange to connect to</param> /// <param name="bindingKey">Binding key. The current convention is {sensorId}.{topic}, where topic could be body or gesture.</param> /// <param name="username">Username, defaults to guest</param> /// <param name="password">Password, defaults to guest</param> public KinectBagReceiver(string ipAddress, string exchange, string bindingKey, string username = "******", string password = "******") { var factory = new ConnectionFactory { HostName = ipAddress, UserName = username, Password = password }; _connection = factory.CreateConnection(); _channel = _connection.CreateModel(); _channel.ExchangeDeclare(exchange, "topic"); // Setting up the ttl to 30ms, since we don't particularly care about outdated frames. var queueParams = new Dictionary <string, object> { { "x-message-ttl", 30 } }; var queue = _channel.QueueDeclare("", false, true, true, queueParams); _channel.QueueBind(queue, exchange, bindingKey); Consumer = new KeepLastOnlyConsumer(_channel); _channel.BasicConsume(queue, true, Consumer); }
public void Dispose() { Consumer = null; _channel.Dispose(); _connection.Dispose(); }