2010-08-27 91 views
7

我有一個懷疑.net消息&它與其他開放協議的兼容性。我想知道是否可以使用STOMP協議的.net消息傳遞API?我如何使用這個協議?有沒有我需要使用的特定圖書館?.net Messaging&STOMP協議

感謝您分享您的經驗和想法。

回答

2

STOMP的根源似乎是基於TCP的消息傳遞,它具有一組命令和控制字符。

.NET中沒有任何東西會給你帶來任何有關不能使用此協議構建應用程序或庫的疑問。如果你是從零開始構建一個.NET STOMP庫,那麼你必須利用System.Net.Sockets。以下是一些示例C#代碼。

Byte[] bytesSent = Encoding.ASCII.GetBytes(someStringMessage); 

// Create a socket connection with the specified server and port. 
Socket s = ConnectSocket("192.168.0.101", somePort); 

// If the socket could not get a connection, then return false. 
if (s == null) 
    return false; 

// Send message to the destination. 
s.Send(bytesSent, bytesSent.Length, 0); 

// Receive the response back 
int bytes = 0; 
s.ReceiveTimeout = 3000; 
bytes = s.Receive(bytesReceived, bytesReceived.Length, 0); 
string page = Encoding.ASCII.GetString(bytesReceived, 0, bytes); 
s.Close(); 

你有什麼疑問?也許編輯你的問題有任何顧慮?

+1

感謝您的信息!所以,你的意思是說.net MQ支持它,我們可以利用它..你知道任何現有的庫?谷歌搜索似乎充滿了基於Java的MQ結果。 – 2010-08-27 21:55:37

+0

@Abdel:我想我說的是,如果你沒有找到一個圖書館,你一定可以自己寫。我從你的問題中得知你對.NET語言是否支持該協議感到懷疑。 – 2010-08-27 22:00:44

5

如果您的目標是從.NET語言發送消息,請考慮利用Apache ActiveMQ NMS library for .NET。他們聲稱使用單個API連接到多個不同的提供商。

目前,以下供應商是可用的:

  • ActiveMQ的,其連接使用OpenWire到ActiveMQ消息代理。
  • 連接到任何STOMP代理的STOMP。

上面鏈接的他們的網站有下載,並鏈接到如何開始使用常見消息方案的文章。

+0

謝謝!這非常有用! – 2010-08-27 22:48:14

+0

@Abdel:這是你的問題upvote! – 2010-08-27 23:28:08