Я пишу клиент/серверное приложение, которое опубликует и подписаться на темы. У меня мало вопросов об архитектуре и реализации этого проекта.Написание темы pub/sub system
Прежде всего, чтобы настроить базу, я буду использовать C# (.NET 3.5), и я хочу явно использовать raw Sockets/AIO/Threads (сначала нет WCF, поскольку я хочу точно настроить сервер и клиентов на мои потребности) , Клиенты в основном подписываются на темы, но могут иногда отправлять команду на сервер и даже публиковать данные. Некоторые клиенты могут быть только издателями.
Как вы думаете, должны быть основные строительные блоки моего сервера ( нитей на клиента, IOCP, ....).
Если клиент использовать один и тот же NetworkStream слушать подписался темы и отправить команду/опубликовать сервер? Как дождаться данных и в то же время записать данные в поток , должно ли это быть сделано в той же теме?
(пример код будет понятно :))
Зачем изобретать колесо? Почему бы не использовать MSMQ ('System.Messaging')? Или что-то вроде [CodeMesh] (http://www.codemesh.com/products/jmscourier/examples/topic_pub_cs.html)? Не нужно троллить ... Только причина, по которой я спрашиваю, это проблемное пространство, хорошо изученное через множество продуктов, и есть много сложных проблем, которые решаются для вашего OOTB с помощью этого подхода. – cwash
Привет, я согласен, что эти приложения могут действительно достичь моей цели, но я предпочитаю смотреть на изображение низкого уровня, чтобы изучить внутренности и знать, как настроить приложение и посмотреть на про и минусы нескольких проектов. Кроме того, мое приложение должно быть в состоянии подписаться на некоторые темы, но не все из них. Я также должен иметь возможность создать своего рода локальный прокси-сервер для экономии пропускной способности и обмена памятью по многим локальным приложениям. – Dave