C#和webbrowsers之间的通信(没有端口转发?)

时间:2018-03-30 13:20:00

标签: javascript c# websocket portforwarding upnp

我有一个在全世界使用的C#应用​​程序,它实际上运行了一个java进程。我想扩展这个程序,并添加一个功能,人们可以从任何地方使用Web浏览器读取进程输出。 (并可能发送输入)

我的第一个想法是一个可以在C#应用程序中运行的WebSocket服务器,浏览器将使用javascript连接到它。然而,这需要在运行服务器的每个系统上进行端口转发,而且我还没有找到比NATUPnP更好的解决方案,NATUPnP无法在大量计算机上完成它的工作。

(如果这还不够,我无法在C#webserver和javascript之间建立成功的连接,但这是另一个问题)

所以我要问的是:

  1. WebSocket是我做这个的最佳选择吗? (最好的意思是稳定,而不是太复杂)

  2. 有没有办法绕过端口转发问题?如果没有,你知道比NATUPnP更有效的方法吗?

1 个答案:

答案 0 :(得分:0)

  

"正常"答案(由例如Nest Thermostats使用,这是一个非常类似的问题)是拥有一个云服务,充当家庭内服务器和网络浏览器之间的代理。因此,家庭内部服务器连接到云服务,并且Web浏览器连接到云服务,现在他们可以相互通信,因为云服务充当代理。当然,有人必须付钱才能运行该云服务,所以这一切都取决于您的业务模式。

正如RB所述,这基本上只是你的选择。那里的服务如ngrok.comlocaltunnel.me可以使端口转发工作在防火墙后面/没有静态IP

相关问题