Beispiel #1
0
        public void Receive()
        {
            while (Console.ReadKey(true).Key != ConsoleKey.Enter && Console.ReadKey(true).Key != ConsoleKey.Escape)
            {
            }

            var factory = new ConnectionFactory()
            {
                HostName = "localhost"
            };

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: "messaging_queue",
                                         durable: true,
                                         exclusive: false,
                                         autoDelete: false,
                                         arguments: null);

                    channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false);

                    var authentication = new Couchbase.Authentication.PasswordAuthenticator("default", "password");
                    Cluster.Authenticate(authentication);

                    using (var bucket = Cluster.OpenBucket("MessagingServer"))
                    {
                        var countResult = bucket.Query <dynamic>("SELECT COUNT(0) as `result` FROM `MessagingServer`");
                        counter = (int)(JsonConvert.DeserializeObject(countResult.Rows[0].ToString())).result;

                        do
                        {
                            while (!Console.KeyAvailable)
                            {
                                var consumidor = new EventingBasicConsumer(channel);
                                consumidor.Received += (model, e) =>
                                {
                                    var body    = e.Body;
                                    var message = System.Text.Encoding.UTF8.GetString(body);

                                    Console.WriteLine(" Mensagem recebida: {0}", message);

                                    Work(message);

                                    channel.BasicAck(deliveryTag: e.DeliveryTag, multiple: false);
                                };

                                channel.BasicConsume(queue: "messaging_queue",
                                                     autoAck: false,
                                                     consumer: consumidor);
                            }
                        } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
                    }
                }
        }
Beispiel #2
0
        private void Work(string messageJson)
        {
            Data data = JsonConvert.DeserializeObject <Data>(messageJson);

            var authentication = new Couchbase.Authentication.PasswordAuthenticator("default", "password");

            Cluster.Authenticate(authentication);

            using (var bucket = Cluster.OpenBucket("MessagingServer"))
            {
                bucket.Insert(counter.ToString(), data);
                counter++;
            }
        }
 public void Init()
 {
     if (cache == null)
     {
         lock (syncObj)
         {
             var authenticator = new Couchbase.Authentication.PasswordAuthenticator(
                 ConfigurationManager.AppSettings["CouchbaseUsername"],
                 ConfigurationManager.AppSettings["CouchbasePassword"]);
             cluster.Authenticate(authenticator);
             cache = cluster.OpenBucket(ConfigurationManager.AppSettings["CouchbaseBucket"]);
         }
     }
 }