2

我正在开发一款适用于 Windows 8 的产品,该产品需要执行一些低级任务、显示一些 UI 并与外部服务器通信。我绝对需要一个 Windows 服务来完成低级任务。同时,我想为 UI 使用 Windows App Store 应用程序的酷炫功能,如推送通知、动态磁贴等。在这个设计中,我的服务和我的应用程序都将与我的外部服务器进行通信。

流程类似于:我的 Windows 服务向我的服务器发送一些信息,然后服务器向我的 App Store 应用程序发送推送通知。

我知道在这种情况下部署并不好,但现在让我们把它放在一边。我的问题:服务器如何知道服务和应用程序在同一台机器上,并因此链接在一起?即当我的 Windows 服务向服务器发送信息时,服务器如何知道将推送通知发送到何处?我需要某种共享的、唯一的、识别信息。

我看到很多关于 App Store 应用程序和桌面应用程序之间缺乏进程间通信的讨论(通常本质上令人沮丧)。就我而言,我有两个选择:

  1. 在服务和应用程序中生成完全相同的唯一标识符。这似乎不太可能,因为应用程序似乎无法访问很多特定于系统的信息。我很想被证明我错了。

  2. 在服务器或应用程序中生成唯一标识符并将其传递给其他组件。执行此操作的潜在方法:

    • 在应用程序中创建标识符,将其保存到文件中,然后从服务中访问该文件。
    • 某种本地套接字解决方案(我读过这不起作用,但没有尝试过)

当然,选项 2 似乎可能违反 Windows 8 应用程序认证要求,特别是:

Windows 应用商店应用不得通过本地机制(包括文件和注册表项)与本地桌面应用程序或服务进行通信。

任何建议将不胜感激。

4

1 回答 1

0

我不是律师,但如果它说“通过本地机制”,那么您仍然可以通过云服务进行通信,只要安装这两个应用程序对于在应用程序中具有某些功能是不必要的,或者如果您没有意思是在商店中发布应用程序。

您可以在文档文件夹中保存某种令牌,或者如果您的桌面应用程序可以以适当的权限运行 - 它可以访问 Windows 应用商店应用程序的本地数据文件夹以同步令牌以用于与 Web 服务通信。

也许只是要求用户在两个应用程序之间复制和粘贴令牌?

于 2013-02-14T23:00:17.427 回答