Advertisement
Guest User

Untitled

a guest
Feb 1st, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. class RMQ
  2. {
  3. public ConnectionFactory connectionFactory;
  4. public IConnection connection;
  5. public IModel channel;
  6.  
  7. string varglob;
  8. string message;
  9. byte[] body;
  10.  
  11. public void InitRMQConnection(string host = "10.0.45.126", int port = 5672, string user = "miftah.rangga20",
  12. string pass = "123")
  13. {
  14. connectionFactory = new ConnectionFactory();
  15. connectionFactory.HostName = host;
  16. //connectionFactory.Port = port;
  17. connectionFactory.UserName = user;
  18. connectionFactory.Password = pass;
  19. }
  20. public void CreateRMQConnection()
  21. {
  22. connection = connectionFactory.CreateConnection();
  23. //Console.WriteLine("Koneksi " + (connection.IsOpen ? "Berhasil!" : "Gagal!"));
  24. }
  25. public void CreateRMQChannel(string queue_name, string routingKey = "", string exchange_name =
  26. "")
  27. {
  28. if (connection.IsOpen)
  29. {
  30. channel = connection.CreateModel();
  31. //Console.WriteLine("Channel " + (channel.IsOpen ? "Berhasil!" : "Gagal!"));
  32. }
  33. if (channel.IsOpen)
  34. {
  35. channel.QueueDeclare(queue: queue_name,
  36. durable: true,
  37. exclusive: false,
  38. autoDelete: false,
  39. arguments: null);
  40. //Console.WriteLine("Queue telah dideklarasikan..");
  41. }
  42. }
  43. public void SendMessage(string tujuan, string msg = "send")
  44. {
  45. byte[] responseBytes = Encoding.UTF8.GetBytes(msg);// konversi pesan dalam bentuk string menjadi byte
  46. channel.BasicPublish(exchange: "",
  47. routingKey: tujuan,
  48. basicProperties: null,
  49. body: responseBytes);
  50. //Console.WriteLine("Pesan: '" + msg + "' telah dikirim.");
  51. }
  52.  
  53. public void WaitingMessage(string queue_name)
  54. {
  55. using (channel = connection.CreateModel())
  56. {
  57. channel.QueueDeclare(queue: queue_name,
  58. durable: true,
  59. exclusive: false,
  60. autoDelete: false,
  61. arguments: null);
  62. var consumer = new EventingBasicConsumer(channel);
  63. consumer.Received += (model, ea) =>
  64. {
  65. body = ea.Body;
  66. message = Encoding.UTF8.GetString(body);
  67. //varglob = message; //message adalah variable global (ga ke-assign)
  68. //Console.WriteLine(" [x] Pesan diterima: {0}", message);
  69. };
  70.  
  71. //varglob = Encoding.UTF8.GetString(body);
  72. channel.BasicConsume(queue: queue_name,
  73. noAck: true,
  74. consumer: consumer);
  75. //Console.WriteLine(" Tekan [enter] untuk memutus koneksi.");
  76. //Console.ReadLine();
  77. //Disconnect();
  78. }
  79. }
  80.  
  81. public string GetMessage()
  82. {
  83. return varglob;
  84. }
  85.  
  86. public void Disconnect()
  87. {
  88. channel.Close();
  89. channel = null;
  90. //Console.WriteLine("Channel ditutup!");
  91. if (connection.IsOpen)
  92. {
  93. connection.Close();
  94. }
  95. //Console.WriteLine("Koneksi diputus!");
  96. connection.Dispose();
  97. connection = null;
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement