Протокол обмена сообщениями .Net и протокол STOMP - PullRequest
7 голосов
/ 28 августа 2010

У меня есть сомнения относительно обмена сообщениями .net и его совместимости с другими открытыми протоколами. Я хотел бы знать, способен ли API обмена сообщениями .net работать с протоколом STOMP? Как я могу использовать этот протокол? есть ли какая-то конкретная библиотека, которую мне нужно использовать?

спасибо, что поделились своим опытом и идеями.

Ответы [ 2 ]

5 голосов
/ 28 августа 2010

Если ваша цель - отправлять сообщения с языка .NET, рассмотрите возможность использования библиотеки Apache ActiveMQ NMS для .NET . Они утверждают, что используют один API для подключения к нескольким различным поставщикам.

В настоящее время доступны следующие поставщики:

  • ActiveMQ, который соединяется с помощью OpenWire с брокером сообщений ActiveMQ.
  • STOMP, который подключается к любому STOMP-брокеру.

На их сайте, указанном выше, есть загрузки и ссылки на статьи о том, как начать работу в распространенных сценариях обмена сообщениями.

2 голосов
/ 28 августа 2010

По сути, 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();

Какие у вас были сомнения? Возможно, отредактируйте свой вопрос с любыми проблемами?

...