要求是在.net客户端应用程序(一个Windows应用程序)和javascript应用程序(在浏览器上运行)之间提供双工通信方法。
流程是 1.用户在其计算机上安装客户端应用程序。 2.用户访问网站并登录到托管javascript应用程序的门户网站。 3.如果用户在客户端.net应用程序上执行活动,则需要通知javascript应用程序。 4.如果用户在浏览器上的javascript应用程序上执行活动,则必须通知.net客户端应用程序。
尝试的可能解决方案是 1. Web服务器.net客户端应用程序,其中javascript应用程序连接到使用Web套接字。但是,如果.net客户端应用程序可能在不同于最初预期的端口上启动Web服务器,如果使用的端口,javascript应用程序可能无法识别Web服务器正在运行的端口。 2.在javacript应用程序上运行activeX。活动X和.net应用程序都将通过WCF连接本地命名管道。不好的部分是使用活动X将在加载Web应用程序时显示弹出窗口。
你知道更好的解决方案吗?
答案 0 :(得分:3)
我们已成功使用WebSockets进行浏览器内Javascript与运行WebSocket服务器的外部应用之间的双工通信。它的效率很高(至少截至去年)绕过了所有浏览器沙盒限制。我不是100%理解你问题的这一部分:
但是,如果.net客户端应用程序可能在不同于预期的端口上启动Web服务器,如果正在使用的端口,则javascript应用程序可能无法识别Web服务器正在运行的端口
.NET应用程序可以在任何想要的端口上运行套接字服务器。如果你正在编写这两个应用程序,我还没有看到特定端口上的同步是一个问题吗?最糟糕的情况是,桌面应用程序可以将端口写入本地存储,您的JS可以通过本地存储获取。还有其他方法可以同步这一点。
答案 1 :(得分:0)
SignalR是一个通信API,具有.NET和javascript的客户端库,服务器库构建在ASP.NET堆栈上。
有了它,您可以构建一个允许client (js) <-> server <-> client (.NET)
通信的解决方案。
以下是一些有用的链接,可帮助您入门: