我试图通过websockets使我的商店应用与桌面应用进行通信。 我知道我们可以将地铁应用程序作为客户端,并通过WinRT方式进行通信。 对于桌面服务器部分,我计划编写一个包含服务器代码并接收正在发送的城域文本的dll。在城域和桌面之间建立通信
有人可以告诉如果这是可能的,以及如何编写一个DLL的服务器代码,如果是的话,我们应该在服务器端使用winhttp的wbesockets?
我试图通过websockets使我的商店应用与桌面应用进行通信。 我知道我们可以将地铁应用程序作为客户端,并通过WinRT方式进行通信。 对于桌面服务器部分,我计划编写一个包含服务器代码并接收正在发送的城域文本的dll。在城域和桌面之间建立通信
有人可以告诉如果这是可能的,以及如何编写一个DLL的服务器代码,如果是的话,我们应该在服务器端使用winhttp的wbesockets?
Windows应用商店(WInRT)应用在沙箱中执行,它们将本地应用与本地计算机上的其他应用(localhost
)进行网络通信隔离。这就是说,这种保护可以通过使用CheckNetIsolation.exe
来禁用。 Visual Studio自动执行相同的调试操作,允许您调用例如开发过程中本地计算机上的Web服务。
至于桌面方面;要与网络套接字客户端进行通信,您可以利用WinHTTP。 MSDN有一个工作示例。
请记住,虽然,任何与localhost
通信应用程序不会对Windows应用商店的认证,将需要一些额外的步骤进行安装:
CheckNetIsolation.exe
将需要为Windows应用商店应用添加环回免除。如果你能避免它,我绝对建议你不要尝试从你的Windows应用商店直接与桌面应用程序进行通信。
非常感谢。是的,我经历了你提到的样本。我想编写一个Winhttp websocket服务器而不是客户端...可以帮我解决这个问题吗? – minu
@minu上面的示例中还有一个服务器组件,但是它实现为一个“IHttpHandler”并托管在IIS中。如果您需要自行托管的解决方案,请查看第三方库,例如[Alchemy Websockets](http://alchemywebsockets.net/)。 –
再次非常感谢指导。我想用C++专门为websockets创建一个。我看到有Winhttp客户端的API,但没有找到一个服务器。 – minu