在浏览器应用程序和.net Windows应用程序之间进行通信

Communicate between a browser application and .net Windows application

本文关键字:应用程序 之间 通信 net 浏览器 Windows      更新时间:2023-09-26

要求在。net客户端应用程序(windows应用程序)和javascript应用程序(在浏览器上运行)之间提供双工通信方法。

流1. 用户在他们的机器上安装客户端应用程序。2. 用户访问网站并登录到托管javascript应用程序的门户。3.如果用户在客户端。net应用程序上执行一个活动,javascript应用程序需要被通知。4. 如果用户在浏览器上的javascript应用程序上执行一个活动,则必须通知。net客户端应用程序。

可能的解决方案是1. Web服务器。net客户端应用程序,其中javascript应用程序使用Web套接字连接。然而,考虑到。net客户端应用程序可能在不同的端口上启动web服务器,如果端口在使用中,javascript应用程序可能无法识别web服务器正在运行的端口。2. 在javascript应用程序上运行activeX。activeX和。net应用程序都将通过WCF通过本地命名管道连接。不好的地方是使用activex会在你加载web应用程序时显示一个弹出窗口。

你知道解决这个问题的更好办法吗?

我们已经成功地使用WebSockets在浏览器内Javascript和运行WebSocket服务器的外部应用程序之间进行双工通信。它非常高效,并且(至少从去年开始)绕过了所有浏览器沙盒限制。我不是100%理解你问题的这一部分:

然而,鉴于。net客户端应用程序可能在不同的端口上启动web服务器,如果端口在使用中,javascript应用程序可能无法识别web服务器在

上运行的端口

. net应用程序可以在它想要的任何端口上运行套接字服务器。如果你正在编写两个应用程序,我不认为在特定端口上同步会是一个问题。最坏的情况是,桌面应用程序可以将端口写入本地存储,而JS可以通过本地存储获取端口。还有其他方法可以同步这个

SignalR是一个通信API,它有。net和javascript的客户端库,而服务器库是建立在asp.net之上的。网络堆栈。

使用它,您可以构建允许client (js) <-> server <-> client (.NET)通信的解决方案。

这里有一些有用的链接,让你开始:

  • SignalR主页
  • 教程在这里
  • 处理场中服务器之间的SignalR通信
  • SO问题:SignalR .NET客户端应用程序示例