1. 程式人生 > >在Nodejs下與Rabbitmq訊息伺服器通訊(node-amqp)

在Nodejs下與Rabbitmq訊息伺服器通訊(node-amqp)

一、測試條件:

1.1、ubuntu伺服器平臺

首先,安裝好Nodejs及Rabbitmq訊息伺服器(Ubuntu下的Rabbitmq訊息伺服器的安裝,可以直接使用此指令碼Rabbitmq-install.sh)。 Rabbitmq-install.sh 指令碼程式碼如下:
#!/bin/sh

echo "deb http://www.rabbitmq.com/debian/ testing main" >> /etc/apt/sources.list

wget -c http://www.rabbitmq.com/rabbitmq-signing-key-public.asc

apt-key add rabbitmq-signing-key-public.asc

apt-get update

apt-get install -y rabbitmq-server g++ make


rm -fr rabbitmq-signing-key-public.asc


rabbitmq-plugins enable mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent rabbitmq_management


rabbitmqctl delete_user guest

rabbitmqctl add_user admin admin

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

rabbitmqctl set_user_tags admin administrator


/etc/init.d/rabbitmq-server restart
假定伺服器已經安裝好上述兩種服務,而且訊息伺服器的使用者名稱/密碼均為admin/admin.

1.2、安裝nodejs與Rabbitmq訊息伺服器互動所需的node-amqp模組。

執行如下命令:
 [[email protected] ~] mkdir node-amqp; cd node-amqp
 [[email protected] node-amqp]$ npm install rabbitmq; npm install amqp

二、node-amqp模組的使用方法及測試例項

2.1、node-amqp所在的github地址(含API說明)

node-amqp
is an AMQP client for nodejs

2.2、使用node-amqp的測試例項

測試程式碼如下:

/*
* Install Rabbitmq Server
* Install nodejs && nmp
* Run those commands:
* [[email protected] ~] mkdir node-amqp; cd node-amqp
* [[email protected] node-amqp]$ npm install rabbitmq
* [[email protected] node-amqp]$ npm install amqp
*/
var amqp = require('amqp');

var connection = amqp.createConnection({url: "amqp://admin:
[email protected]
:5672"}); connection.on('ready', function () { var callbackCalled = false; exchange = connection.exchange('exchange_name', {type: 'direct',autoDelete:false}); connection.queue("queue_name",{autoDelete:false}, function(queue){ queue.bind('exchange_name','queue_name', function() { exchange.publish('queue_name', 'this is message is testing ......'); callbackCalled = true; setTimeout(function() { console.log("Single queue bind callback succeeded"); //exchange.destroy(); //queue.destroy(); connection.end(); connection.destroy(); }, 5000); }); queue.subscribe(function (message) { console.log('At 5 second recieved message is:'+ message.data); }); }); });

具體使用請參照node-amqp的相關API。

相關推薦

NodejsRabbitmq訊息伺服器通訊node-amqp

一、測試條件: 1.1、ubuntu伺服器平臺 首先,安裝好Nodejs及Rabbitmq訊息伺服器(Ubuntu下的Rabbitmq訊息伺服器的安裝,可以直接使用此指令碼Rabbitmq-insta

Linux 父程序子程序的通訊pipe管道

每個程序各自有不同的使用者地址空間,任 何一個程序的全域性變數在另一個程序中都看不到,所以程序之間要交換資料必須通過核心,在核心中開闢一塊緩衝 區,程序1把資料從使用者空間拷到核心緩衝區,程序2再從核心緩衝區把資料讀走,核心提供的這種機制稱為程序間通訊(IPC,Inte

Java中利用socket實現簡單的服務端客戶端的通訊入門級

Java程式設計中,要想要使用網路通訊,就離不開Socket程式設計,在此對socket進行簡單的介紹。首先宣告,這是一個入門級的介紹,僅僅簡單的實現了客戶端向服務端傳送資料,服務端正常的接收資料,當接收到特定的資料時,服務端和客戶端都關閉,一個服務端對應一個客戶端,不涉及

Java中利用socket實現簡單的服務端客戶端的通訊基礎級

在上一篇文章中,簡單的介紹了java中入門級的socket程式設計,簡單的實現了客戶端像伺服器端傳送資料,伺服器端將資料接收並顯示在控制檯,沒有涉及多執行緒。上一篇文章的連結:Java中利用socket實現簡單的服務端與客戶端的通訊(入門級) 這次,我們將上一節中的程式碼進

LINUXsocket實現伺服器多客戶端通訊

一直對網路方面的技術比較感興趣,有時間就學習學習。雖然現在很多高階語言都已將網路程式設計部分做了封裝處理,使之使用更加方便,但是學習基礎原理,還是一個程式設計師必須要做的。 linux下的socket程式設計原理,網路上已經有大把的詳細說明,這裡不做說明,程式碼中已有簡單註釋。 具體方法,有

Qt:筆記:多執行緒介面元件的通訊

子執行緒能夠更改介面元件狀態的本質是什麼? -子執行緒發射訊號通知主執行緒介面更新請求;主執行緒根據具體訊號遺蹟訊號引數對介面元件進行修改。 是否有其他間接的方式可以讓子執行緒更新介面元件的狀態? 解決方案 - 傳送自定義事件 -自定義事件類用於描述介面更新細節 -在主視窗類中重

C#伺服器客戶端通訊客戶端

客戶端登陸介面 先定義三個視窗級變數(全域性變數) private TcpClient client;         private NetworkStream stream;         private

C#伺服器客戶端的通訊伺服器

Tcp協議+socket 1.伺服器端開始監聽 //通過winform視窗輸入的伺服器ip地址和埠號  myip = IPAddress.Parse(textBox1.Text);  myport = Int32.Parse(textBox2.Text);

Java實現簡單的Socket伺服器客戶端字串通訊適合初學者閱讀

       近段時間,頻繁看到很多學生做畢業設計用到了Socket通訊技術,問題非常多,特寫一個小例子,希望對馬上畢業的同學有所幫助。如果希望學習的更加深入,需要掌握的知識有:面向物件、多執行緒、Socket通訊、IO流、異常處理 伺服器端程式碼: import java

beaglebone black接nrf24l01RFID標籤的通訊基於EZSDK linux平臺

     最近半個月被nrf24l01折磨了,終於中斷正常了:有做這一塊的可以交流下qq:229425962,下面是串列埠訊息 [ 1.009063] mtdoops: mtd device (mtddev=name/number) must be supplie

Qt 筆記:多執行緒介面元件的通訊

是否可以在子執行緒中建立介面元件? class TestThread : public QThread { Q_OBJECT protected: void run() { QWidget w; w.show();

RabbitMQ訊息確認機制事務+Confirm

概述 在 Rabbitmq 中我們可以通過持久化來解決因為伺服器異常而導致丟失的問題,除此之外我們還會遇到一個問題:生產者將訊息傳送出去之後,訊息到底有沒有正確到達 Rabbit 伺服器呢?如果不錯得數處理,我們是不知道的,(即 Rabbit 伺服器不會反饋任何訊息給生產者),也就是預設的情況下是不知道訊息

CentOS6.9安裝rabbitmq訊息佇列

宣告:此文字非本人原創,而是一個名叫西安-晁州的作者在部落格園釋出的,本人也是比較尊重原創的,轉載只是為了方便檢視而已。 廢話不多說,需要安裝的朋友按照以下步驟就可以簡單按照了。。。。。。。 安裝如下步驟: 首先安裝erlang 1 yu

RabbitMQ訊息確認機制事務+Confirm

概述 在使用RabbitMQ的時候,我們可以通過訊息持久化操作來解決因為伺服器的異常奔潰導致的訊息丟失,除此之外我們還會遇到一個問題,當訊息的釋出者在將訊息傳送出去之後,訊息到底有沒有正確到達broker代理伺服器呢?如果不進行特殊配置的話,預設情況下發布操作是不會返回任何

【微信小程式控制硬體②】 開始微信小程式之旅,匯入小程式Mqtt客戶端原始碼,實現簡單的驗證和通訊伺服器附帶原始碼

本博文由熱愛分享熱愛技術的半顆心臟原創,非官方人員、非組織名義編寫,博文如有不對或侵犯您的權益,請及時留言,第一時間糾正! 一、前言; 繼續我們的小程式控制智慧硬體(包括esp8266)學

LinuxSocket客戶端伺服器通訊

Linux/Unix系統一切都是檔案 Linux系統中,存在一個虛擬檔案系統VFS,把一切實體視為檔案,包括普通檔案、音視訊、輸入輸出裝置等。這樣,作業系統可以可以提供統一的介面來操作任何實體。每個“檔案”建立後,都有一個檔案描述符(File Describer),檔案描述符是一個正

NodeJs 實現 WebSocket 即時通訊簡單版

    服務端程式碼 var ws = require("nodejs-websocket"); console.log("開始建立連線...") var game1 = null,game2 = null , game1Ready = false , game2Read

安卓前端如何.net後端通訊

今天在公司工作,由於專案人手不夠,後端是使用.net開發的,然後一個寫交換的哥們不知道如何下手。 剛開始,我也是狗吃王八無從下口。 回想一下以前做的開發,任何與後端的通訊,無非就是找到後端的相應路徑,然後加上對應的引數,就能完成對應的功能。 例如: 一、在瀏覽器中,用百度搜

windows環境scipyscikit_learn的安裝教程使用pip

對於學機器學習的同學,sklearn這個包用到的概率是非常大的。 在windows環境下安裝scipy和sklearn是很麻煩的。下面說說我是如何解決的。 由於sklearn依賴於numpy和scipy 我首先嚐試用pip安裝 pip install numpy 安裝

Ubuntu16.04伺服器普通使用者非管理員賬戶在自己目錄安裝TensorFlow, Keras等親測

最近在 MSRA 實習,組裡給了一臺多GPU的伺服器賬號,登入進去一看,已經多個使用者了。 本著不打擾別人的搭建的環境,也不被別人打擾的原則,決定在自己使用者的目錄下面單獨安裝相應的開發環境。 要安裝的的工具有: Anaconda3,TensorFlow,Keras 還有