2010-08-27 52 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