Прежде всего, это дополнительный вопрос к Должен ли я использовать WCF или необработанные сокеты? .Спасибо всем, кто откликнулся, это мне очень помогло!
В последнее время некоторые мои требования изменились.Возникшее препятствие main заключается в том, что теперь я должен поддерживать клиенты Linux в дополнение к Windows.Я должен использовать .NET на стороне сервера в качестве требования.Мне также нужно поддерживать постоянные связи с клиентами (или опрос).Я хотел бы запросить обратную связь от сообщества по следующим параметрам:
Использовать более простую версию модели pub-sub.У меня есть веб-сервис на сервере, который клиенты постоянно опрашивают (я предварительно упаковываю скрипты / двоичные файлы, которые мне нужны для запуска на клиенте, и выдаю команды с сервера через сервис).Сервер ставит задачи для клиентов в очередь, а клиенты их забирают.Эта модель становится очень интероперабельной, поскольку я могу написать клиент на любой платформе.Кроме того, мне не нужно беспокоиться о брандмауэрах на стороне клиента из-за http.Тем не менее, я обеспокоен опросом (возможно, мне придется опрашивать каждые несколько секунд для тысяч клиентов).Я читал о Comet, но, к сожалению, кажется, что для его реализации в C # требуется немало усилий.
Используйте обычные сокеты, создайте постоянное соединение с клиентами и используйте эти каналы.Здесь я обеспокоен постоянными соединениями (они нужны мне для управления клиентом, они находятся за NAT).Обычно я видел людей, создающих поток для каждого соединения, который я считаю не масштабируемым.Я прав?Является ли асинхронные вызовы / сокеты лучшим выбором?
Будем благодарны за любые комментарии.