Просто технологическое обновление, теперь, когда вышла версия .NET 4.0.
Я пишу приложение, которое взаимодействует с сервером через шину сообщений (вместо вызовов методов). Это основано на внутренней архитектуре приложения (многопоточное, передающее сообщения).
От клиента к серверу передается ограниченное количество сообщений, от сервера к клиенту гораздо больше. Большинство из них можно обработать с помощью отдельного специализированного механизма, но в конце мы говорим о 10-100 небольших сообщениях в секунду, передаваемых от сервера к клиенту.
Клиент должен работать в "условиях интернета". Это означает, что, возможно, домашние конечные пользователи находятся за стандартными устройствами NAT (т. е. типичными маршрутизаторами DSL) — защищенная брандмауэром и, следовательно, «открытая» сеть не может быть принята.
Я хочу иметь как можно меньше задержек и как можно меньше перегрузок для связи.
Каков технологически лучший способ обработки обратного вызова шины сообщений? У меня нет проблем с регулярным обращением к серверу для доставки сообщений, если что-то нужно отправить... ...но каковы мои варианты обработки сообщений от сервера к клиенту?
- Как работает WsDualHttp? Особенно по сценарию NAT?
Просто в качестве примечания: опрос, скорее всего, отсутствует - основная проблема здесь в том, что у меня будут значительные накладные расходы ИЛИ значительная задержка, и то, и другое на самом деле не нужно. Технически мне бы хотелось использовать какой-то потоковый подход, когда сервер может записывать сообщения в поток, пока он их генерирует, и они отправляются клиенту по мере их поступления. Не уверен, что это выполнимо с WCF (если нет, я могу решить обработать всю часть сообщения вне WCF и просто выполнить управление/вход/настройку/уничтожение через WCF).