Управление несколькими ботами по TCP / IP - PullRequest
2 голосов
/ 26 февраля 2012

Я работаю над проектом, который включает управление несколькими колесными роботами (работающими .NET Compact Framework) в одной сети через TCP / IP.

Управление может осуществляться извне сети.

Первоначально я выбирал Sockets, но позже WCF казался лучшим вариантом.

Сетевая архитектура включает один сервер, на котором размещается служба WCF, и очередь управления для каждого устройства в сети.Клиентское приложение подключается к серверу изнутри / снаружи сети, находит подходящее устройство и запускает управление.

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

Я хотел знать, насколько хорошо это решение для минимальной задержки?Есть ли способ удалить опрос и заставить сервер отправлять прерывания на устройства, в которые входит новая команда?

Какие улучшения можно сделать, чтобы уменьшить задержку?

1 Ответ

1 голос
/ 26 февраля 2012

WCF поддерживает полнодуплексную связь ... так что вы определенно захотите удалить архитектуру "опроса" и просто попросить сервер отправить команду клиентам, когда пользователь нажимает кнопку (или что-то еще).

Существует множество хороших руководств по WCF ... это статья, которую я написал несколько лет назад, но она очень проста и может послужить хорошим началом: Программирование клиент-сервера с использованием WCF

РЕДАКТИРОВАТЬ: В этой статье сравниваются действия "Sockets" и как WCF делает это проще. Кроме того, я забыл упомянуть ответ на ваш вопрос о задержке - если вы используете привязку «net.tcp» (использованную в статье), она будет работать очень быстро.

...