2015-08-22 6 views
1

У меня есть проект, который изначально планировался как простая архитектура клиентского сервера через HTTP с сервером, написанным на Node.js, и клиентом, являющимся приложением .NET Windows, написанным на C#.Сервер Node.js выдаёт команды клиенту Windows C#

Клиент должен был осуществлять контроль над приложением Windows C#, которое, в свою очередь, отправило бы некоторые запросы на данные на сервер.

Теперь я собираюсь переместить весь контроль над приложением на сервер, так что .NET-приложение имеет минимальный интерфейс и полностью контролируется через веб-интерфейс на сервере. В этом случае клиент регистрируется в веб-приложении, нажимает кнопки, и сервер отправляет команды и данные в приложение C# в Windows.

Проблема, конечно, если я делаю это по HTTP, это становится беспорядок с точки зрения правильной конфигурации на стороне клиента: правила брандмауэра должны разрешать подключение к клиентским компьютерам из Интернета и NAT.

Есть ли способ избежать этих проблем на стороне клиента? Например, инициируя соединение с клиентом (как только клиентское программное обеспечение запущено), а затем постоянно его открывать для приема команд с сервера?

ответ

1

От того, что вы сказали, это звучит так, как будто вы хотите использовать веб-узлы.

Вы можете использовать SignalR для этого http://www.asp.net/signalr/overview/getting-started/introduction-to-signalr

Если вы хотите использовать Meteor, вы можете также использовать DDP. Вы можете использовать эту клиентскую библиотеку .NET для этого https://github.com/sonyarouje/DDPClient.NET

+0

Хорошо, это то, что я подозревал. Любые другие протоколы? – krl

+0

добавил еще один :) –

+0

в порядке. спасибо за хорошие отправные точки. – krl

Смежные вопросы