/ / Двупосочна комуникация Използване на WCF - c #, wcf

Двупосочна комуникация Използване на WCF - c #, wcf

Проектирам архитектура клиент-сървър, която се изпълнява чрез Windows Communication Foundation. В един от случаите на използване сървърът трябва да го направи поискване статута на клиента (ите), което означава, че трябва да се обади SendStatus() метод на клиент и да поискат неговия статут. Просто се чудех дали този случай на използване може да се приложи чрез WCF, без да се създава самостоятелна услуга от страна на клиента. Аз се опитвам да избягвам контакти, защото клиентът е фонова услуга и по същество винаги е свързан към сървъра. Разбирам, че WCF в крайна сметка използва sockets за комуникация, но аз се опитвам специално да използвам WCF, тъй като това по-скоро е доказателство за концепция.

Схемата, за която си помислих, е, че клиентът може да се обади SendClientStatus() метод на сървър и изпраща състоянието му на всеки 5 секунди. Но пак това не изглежда като добър подход. Всяка помощ ще бъде оценена.

Отговори:

9 за отговор № 1

В света на WCF имате повече или по-малко две възможности.

А) Двупосочна услуга с обвързване на Dual Http

Б) Схема за проучване без връщане на стойност - това епо същество това, което описахте. Неистинското внедряване, както правилно отбелязвате, не е толкова голямо, но има оптимизации. Тъй като нямате нужда от нещо, върнато от SendClientStatus (правилно?), Можете да оптимизирате комуникацията, като изпратите само актуализация, когато има такава - напр. доколкото състоянието на клиента остава същото, нищо не се изпраща на сървъра. В зависимост от честотата, с която клиентският статус се променя, това може значително да намали трафика. Двустранните услуги представляват допълнителна конфигурация, която искате да избегнете, ако наистина не се нуждаете от тях.