2016-12-22 9 views
0

このトピックは初めてですが、これにアプローチする方法を知りたいと思っています。 メッセージを使用してnodejsサーバーで厳しい操作を実行するシステムを構築したいと思います。 私は休息について知っていますが、rabbitmqとのメッセージングにどのように翻訳するかを理解できません。私はrabbitmqとnodejsを使ってどうやって作業をすることができますか?

編集: は、私は私が私のquestinがもう少し明確にするためにあると思う:私は、Node.jsのサーバーにAMQPとRabbitMQのを使用して、私のJavaクライアントによって生成メッセージを送信している何をしたいのか 。メッセージにはJSONオブジェクトが含まれています。 一部のデータはデータベース(mysql)に送信する必要があります。

私のコードは次のようないくつかの種類(Javaプロデューサ)になります。

JSONObject obj = new JSONObject();  
      obj.put("fuellstand", behaelter_1.getFuellstand()); 
      obj.put("behaelter", behaelter_1.getId()); 
      obj.put("timestamp", currentTimestamp); 
    //String message = behaelter_1.getFuellstand()+" "+ behaelter_1.getId()+" "+currentTimestamp; 
      String message = obj.toJSONString(); 
    channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8")); 
    //channel.basicPublish("",QUEUE_NAME , , arg3); 
    System.out.println(message+" "+message.getBytes("UTF-8")); 

をそして、私のnodejsサーバがそれを消費するtrys方法のthats:)

amqp.connect('amqp://localhost', function (err, conn) { 
if (err) { 
    console.log("fehler mit dem amqp host!") 
    throw(err); 
} else { 
    conn.createChannel(function (err, ch) { 
     if (err) { 
      console.log("failing to createChanel") 
      throw(err); 
     } else { 
      var q = 'alerts'; 
      ch.assertQueue(q, {durable: false}); 
      console.log(" [*] Waiting for something in %s. CTRL+C to end", q); 
      ch.consume(q, function (msg) { 
       console.log(msg); 
      }, {noAck: true}); 
     } 
    }); 
} 

};

コンソールには次の値を返します。この時点で

{ fields: { consumerTag: 'amq.ctag-G3vsZRIGRZJT1qntZ1hTuw', 
deliveryTag: 1, 
redelivered: false, 
exchange: '', 
routingKey: 'alerts' },properties: {},content: <Buffer 7b 22 66 75 65 6c 6c 73 74 61 6e 64 22 3a 32 32 2c 22 62 65 68 61 65 6c 74 65 72 22 3a 31 2c 22 74 69 6d 65 73 74 61 6d 70 22 3a 32 30 31 36 2d 31 32 ... > } 

私の唯一の問題は、JSON jのビルドを解読することです。私はバッファをデコードできない理由を知りません。または何か間違っているのですか?

答えて

0

をサポートしていません。個々のjson属性にアクセスするためにjsonに移動

0

のRabbitMQは、データベースではなく、それは私がメッセージ msg.content.toString

のコンテンツにアクセスするには、次のコードを使用していた、今私はそれを解析する必要が結局のところCRUD操作

関連する問題