我有最新版本的NodeJS(0.10.21,amqplib(0.1.0)(https://github.com/squaremo/amqp.node.git)和RabbitMQ的(3.2.0)。是 '時,JS' 或基本amqplib的RabbitMQ教程的NodeJS不工作
-
。
- 開始的RabbitMQ服務器
- 去amqp.node /例子/教程和安裝NPM包後運行./send.js
它報告: [x] Sent 'Hello World!'
從rabbitmq Web控制檯中,我可以看到它創建連接,它創建隊列'hello'。但是,它實際上並不向隊列發佈任何消息。
除RPC客戶端/服務器外,其他教程都不適用於我,它們將創建交換,隊列和通道,但不會發布消息。
我的一個朋友使用所有相同的版本運行正常,除了OS X 10.6,而不是10.8。
我已經使用節點檢查器遍歷了amqplib代碼,並且看不到任何明顯的錯誤。它確實看起來像消息框架沒有被創建,但在那個層面上,我不知道目前發生了什麼。
當我通過Web控制檯或使用Bunny + Ruby發佈消息時,它會創建一個隊列並按預期發佈消息,因此它必須與節點,amqp和/或OS X 10.8(而不是rabbitmq)有關。
的RabbitMQ的日誌(拖尾兩個日誌)只提及連接口,然後關閉速度非常快算賬,但沒有報告任何錯誤:
=INFO REPORT==== 27-Oct-2013::20:46:16 === accepting AMQP connection <0.731.0> (127.0.0.1:56927 -> 127.0.0.1:5672)
=INFO REPORT==== 27-Oct-2013::20:46:16 === closing AMQP connection <0.731.0> (127.0.0.1:56927 -> 127.0.0.1:5672)
我聞數據包從amqp節點發送到rabbitmq。這從運行的第一個例子amqp.node「send.js」在實施例/教程:
http://www.limorph.com/files/amqp_amqnode_send.txt
你可以看到它是如何打開連接,創建隊列和關閉連接,但不發一個消息。
這是一個來自ruby/bunny--你可以看到它如何打開連接,創建隊列併發布消息。
http://www.limorph.com/files/amqp_bunny.txt
我發現,如果我刪除conn.close(),它管理髮布消息。
如
})).ensure(function() {
// conn.close();
});;
不是一個真正的解決方案,但它指向的也許問題在「何時」而非amqplib是?
任何意見或幫助非常感謝
這是因爲我運行'npm install'而不是'npm install amqplib'或'npm install ../ ..'。這意味着我正在運行'when'的2.5.1版本,該版本有一些故障競爭條件,會過早關閉連接。當運行版本2.1.1時,amqplib被鎖定,它工作正常。 –