2012-05-12 4 views
1

Я играл с pubsub, и до сих пор он выглядит хорошо для того, что мне нужно (базовый игровой эксперимент).Написание долгосрочного сервера/службы pubsub C#

С точки зрения Javascript и мобильного телефона (через титановый сервер Appcelerator) я действительно могу оценить ценность использования pubsub.

Однако мне нужно написать серверное приложение в C# /. NET (хотя и открытое для других идей) для прослушивания очереди подписчиков, которые у меня есть, и обрабатывать сообщения .. которые включают в себя принятие определенных решений и т. Д., А затем, возможно, например, запись другого сообщения в очередь публикации.

До сих пор я играл с RX (Reactive Extensions) для C#, которые прослушивают мой канал подписки. Пока все хорошо, я вижу, что сообщения приходят, хотя на данный момент я просто написал приложение консоли C# для тестирования.

Мой вопрос: будет ли лучший способ подождать и прослушать подписные сообщения pubsub, чтобы написать приложение для Windows-приложений? или есть еще один метод, более подходящий? очевидно, в какой-то возможной точке мне, возможно, придется масштабировать сервер до 2-3 серверов, однако, учитывая характер очереди pubsub/сообщений, я не вижу проблемы, если бы у меня была некоторая балансировка нагрузки и т. д.

Любые идеи добро пожаловать!

ответ

3

Использование служебного автобуса. Когда облако полезно для вас, чем Azure Service Bus. Когда не тогда nServiceBus. Взгляните также на RabbitMQ, это AMQP-каркас и способен делать больше, чем pubsub. Также у кролика есть несколько клиентов на нескольких платормах. Например, одним из подходов исключительно для JavaScript является RabitMQ + Node.js + WebSockets.

Все клиенты и devtools, а также статьи о RabbitMQ для разных платформ и языков: here.

Существует также специальная привязка к RabbitMQ для .NET, найдите ее here.

NServiceBus PubSub информация есть here. Это служебная шина .NET, но не такая бесплатная, как RabbitMQ. В любом случае RabbitMQ является агностиком платформы.

В любой реализации служебных шин уже есть PubSub, вот почему они существуют. Поэтому нет оснований для реализации, что уже реализовано