2015-10-06 100 views
1

Iam是Microsoft事件中心的初學者。我正在使用node js consumer從eventHub成功讀取樣本字符串數據。但我需要消費八位字節流數據。這是我的代碼使用node.js從azure eventhub消耗八位字節流數據

var messageHandler = function (myIdx, msg) { 
console.log("############# Inside Message Handler #######"); 
console.log(msg.body); 
} 

我沒有得到正確的數據。 但我成功從txt文件中讀取數據。這是我的代碼

fs.readFile('/home/test/19_6.txt', function (err, data) { 
console.log(data); 
} 

我該怎麼辦?任何想法 ????

這是我的八位字節流數據Click here to view

+0

你在MS EventHub中做什麼?什麼是八位字節流數據,文件或其他? –

+0

當我從一個文件讀取數據被視爲對象或字節數組。從事件中心接收的相同數據是String(message.body)。我想知道如何解釋來自事件集線器的數據,就像從文件中讀取數據一樣。 –

回答

2

按我的經驗,你可以讀取文件的字節數組,並使用Base64編碼將其轉換爲一個字符串,然後發送Base64編碼字符串EventHub。當您收到數據時,您可以將Base64字符串解碼爲一個字節數組。

但我不推薦這種方式,因爲EventHub有一些限制。

首先,事件中心事件的最大大小爲256KB。超過此限額的郵件將被拒絕,並且調用代碼將收到一個異常。請參考https://azure.microsoft.com/en-us/documentation/articles/service-bus-quotas/

enter image description here

其次,你需要使用一些C#的API,例如事件處理器主機API從事件集線器接收消息。請參閱https://azure.microsoft.com/en-us/documentation/articles/event-hubs-programming-guide/#event-consumers。如果你想使用NodeJS來完成它,雖然事件中心/服務總線支持AMQP協議,但是很難。

所以我認爲你想知道如何發送文件到一個隊列,並接收他們做一些過程。我建議您使用Azure存儲隊列來實現您的想法。

關於使用來自NodeJS的存儲隊列,請參考https://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-how-to-use-queues/http://azure.github.io/azure-storage-node/#toc7

相關問題