2014-01-24 28 views
0

我试图通过websockets使我的商店应用与桌面应用进行通信。 我知道我们可以将地铁应用程序作为客户端,并通过WinRT方式进行通信。 对于桌面服务器部分,我计划编写一个包含服务器代码并接收正在发送的城域文本的dll。在城域和桌面之间建立通信

有人可以告诉如果这是可能的,以及如何编写一个DLL的服务器代码,如果是的话,我们应该在服务器端使用winhttp的wbesockets?

回答

0

Windows应用商店(WInRT)应用在沙箱中执行,它们将本地应用与本地计算机上的其他应用(localhost)进行网络通信隔离。这就是说,这种保护可以通过使用CheckNetIsolation.exe来禁用。 Visual Studio自动执行相同的调试操作,允许您调用例如开发过程中本地计算机上的Web服务。

至于桌面方面;要与网络套接字客户端进行通信,您可以利用WinHTTP。 MSDN有一个工作示例。

请记住,虽然,任何与localhost通信应用程序不会对Windows应用商店的认证,将需要一些额外的步骤进行安装:

  • Windows应用商店应用程序包将需要因为要侧载它不会在Windows应用商店中发布。
  • 任何与其通信的桌面组件都需要与其他桌面应用程序分开安装。
  • 使用CheckNetIsolation.exe将需要为Windows应用商店应用添加环回免除。

如果你能避免它,我绝对建议你不要尝试从你的Windows应用商店直接与桌面应用程序进行通信。

+0

非常感谢。是的,我经历了你提到的样本。我想编写一个Winhttp websocket服务器而不是客户端...可以帮我解决这个问题吗? – minu

+0

@minu上面的示例中还有一个服务器组件,但是它实现为一个“IHttpHandler”并托管在IIS中。如果您需要自行托管的解决方案,请查看第三方库,例如[Alchemy Websockets](http://alchemywebsockets.net/)。 –

+0

再次非常感谢指导。我想用C++专门为websockets创建一个。我看到有Winhttp客户端的API,但没有找到一个服务器。 – minu

相关问题