1

I have a project that initially was planned as a simple client server architecture over HTTP with server written in Node.js and client being a .NET Windows application written in C#.

The customer was supposed to exercise control over Windows C# app, which in turn would send some requests for data to the server.

Now I am thinking about moving all control of the app to the server, so that .NET app has minimal UI and is completely controlled via Web UI on the server. In this case customer logs in to a Web app, clicks buttons and the server sends commands and data to the C# app on Windows.

The problem of course if I do it over HTTP, it becomes a mess in terms of proper configuration on the customer side: firewall rules must allow connections to the customer computers from the Internet and NAT has to be taken care of.

Is there a way to avoid these issues on client side? For instance by initiating a connection from the client (once client software is started) and then keeping it constantly open for receiving commands from the server?

krl
  • 5,087
  • 4
  • 36
  • 53

1 Answers1

1

From what you have said, it sounds like you want websockets.

You can use SignalR for this http://www.asp.net/signalr/overview/getting-started/introduction-to-signalr

If you want to use Meteor, you could also use DDP. You can use this .NET client lib for that https://github.com/sonyarouje/DDPClient.NET

Keith Nicholas
  • 43,549
  • 15
  • 93
  • 156
  • Alright, this is what I suspected. Any other protocols to look at? – krl Aug 22 '15 at 09:59
  • and here is a good refresh http://stackoverflow.com/questions/11077857/what-are-long-polling-websockets-server-sent-events-sse-and-comet – krl Aug 22 '15 at 10:08