Browse Source

rabbitmq nodejs

tobby48 4 years ago
parent
commit
7485999c59

+ 1
- 1
src/main/java/kr/co/swh/lecture/opensource/rabbitmq/Publisher.java View File

@@ -44,7 +44,7 @@ public class Publisher {
44 44
 		factory.setHost("dev-swh.ga");
45 45
 		Connection connection = factory.newConnection();
46 46
 		Channel channel = connection.createChannel();
47
-		channel.queueDeclare(QUEUE_NAME, false, false, false, null);
47
+		channel.queueDeclare(QUEUE_NAME, true, false, false, null);
48 48
 		
49 49
 		String message = "Hello World!";
50 50
 		channel.basicPublish("", QUEUE_NAME, null, message.getBytes());

+ 1
- 1
src/main/java/kr/co/swh/lecture/opensource/rabbitmq/Receiver.java View File

@@ -28,7 +28,7 @@ public class Receiver {
28 28
 		factory.setHost("dev-swh.ga");
29 29
 		Connection connection = factory.newConnection();
30 30
 		Channel channel = connection.createChannel();
31
-		channel.queueDeclare(QUEUE_NAME, false, false, false, null);
31
+		channel.queueDeclare(QUEUE_NAME, true, false, false, null);
32 32
 		
33 33
 		System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
34 34
 		Consumer consumer = new DefaultConsumer(channel) {

+ 822
- 747
src/main/nodejs/package-lock.json
File diff suppressed because it is too large
View File


+ 2
- 1
src/main/nodejs/package.json View File

@@ -7,8 +7,9 @@
7 7
     "test": "echo \"Error: no test specified\" && exit 1"
8 8
   },
9 9
   "dependencies": {
10
-    "express": "~4.16.4",
10
+    "amqplib": "^0.5.6",
11 11
     "ejs": "~2.4.1",
12
+    "express": "~4.16.4",
12 13
     "mysql": "2.17.1",
13 14
     "request": "2.88.0"
14 15
   },

+ 40
- 0
src/main/nodejs/rabbitmq-receiver.js View File

@@ -0,0 +1,40 @@
1
+/*
2
+ * npm install amqplib
3
+ */
4
+
5
+var amqp = require('amqplib/callback_api');
6
+
7
+const url = 'amqp://dev-swh.ga:5672';
8
+const queueName = 'hello';
9
+
10
+amqp.connect(url, function(error, connect){
11
+    if(error){
12
+        console.log(error);
13
+        return;
14
+    }
15
+    connect.createChannel(function(error, channel){
16
+        if(error){
17
+            console.log(error);
18
+            return;
19
+        }
20
+        channel.assertQueue(queueName, {durable: true}, function(error){
21
+            let recevieMessage = function(){
22
+                channel.get(queueName, {}, function(error, message){
23
+                    if(error){
24
+                        console.log(error);
25
+                    }
26
+                    else if(message){
27
+                        console.log(message.content.toString());
28
+                        channel.ack(message);
29
+                        setTimeout(recevieMessage, 5000);
30
+                    }
31
+                    else{
32
+                        console.log('NO MESSAGE');
33
+                        setTimeout(recevieMessage, 5000);
34
+                    }
35
+                });
36
+            }
37
+            recevieMessage();
38
+        });
39
+    });
40
+});

+ 39
- 0
src/main/nodejs/rabbitmq-sender.js View File

@@ -0,0 +1,39 @@
1
+/*
2
+ * npm install amqplib
3
+ */
4
+
5
+var amqp = require('amqplib/callback_api');
6
+
7
+const url = 'amqp://dev-swh.ga:5672';
8
+const queueName = 'hello';
9
+
10
+amqp.connect(url, function(error, connect){
11
+    if(error){
12
+        console.log(error);
13
+        return;
14
+    }
15
+    connect.createChannel(function(error, channel){
16
+        if(error){
17
+            console.log(error);
18
+            return;
19
+        }
20
+        channel.assertQueue(queueName, {durable: true}, function(error){
21
+            let sendData = {
22
+                type : 'message',
23
+                message : 'test message!'
24
+            };
25
+            channel.sendToQueue(queueName, encode(sendData), {
26
+                persistent: true
27
+            });
28
+            
29
+        });
30
+    });
31
+});
32
+
33
+function encode(doc) {  
34
+//    return new Buffer(JSON.stringify(doc));
35
+//	https://stackoverflow.com/questions/52165333/deprecationwarning-buffer-is-deprecated-due-to-security-and-usability-issues
36
+//	new Buffer(string)            // Old
37
+//	Buffer.from(string)           // New
38
+	return Buffer.from(JSON.stringify(doc));
39
+}