7

官方文档没有提到支持,但我想知道是否可以连接一个客户端程序而不是 javascript 来使用 Channel API。我目前正在使用来自 Windows 应用程序的基本轮询技术,拥有 Channel API 将提高响应能力并大大减少负载。

我想作为一个丑陋的黑客,我可以在后台渲染一个隐藏的 webbrowser 对象并在其中运行 javascript,然后以此为食。有更好的解决方案吗?

4

2 回答 2

10

使用 XMPP 将不起作用,因为 Channel API 仅在 Google 服务器之间与 XMPP 通信:XMPP 流量不会暴露给浏览器(您可以通过使用 FireBug 或 Chrome 开发者窗口查看“绑定”的内容来验证这一点" 请求;你会看到有 JSON 被发送下来)。

正如您所说,当前唯一可行的解​​决方案是包装一个浏览器控件,该控件运行足够的 JavaScript 以连接到您的应用程序中的通道,并在收到消息时使用它来向您的 C# 应用程序发出信号。笨重,但可行。

虽然您也可以进行逆向工程,然后模拟 iframe 正在做什么并直接使用 JSON 消息,但随着实现细节的变化,您的应用程序可能会以多种方式被破坏——而且它们会发生变化。

综上所述,我很好奇有多少人想要一个原生 C# 库,以及你想用它编写什么样的应用程序。WP7 应用程序?Windows 客户端应用程序?服务器应用程序?我在这里为 App Engine 创建了一个功能请求:

http://code.google.com/p/googleappengine/issues/detail?id=4206

如果您有兴趣,请对其进行投票,并且您可以命名的详细信息/令人信服的用例越多越好。

谢谢!

于 2010-12-05T05:16:30.033 回答
3

如果可能,您可能会考虑直接使用XMPP。C#有几个

您可能希望自己获得一份FireFox + FireBug的副本。然后看看 FireBug 的“网络”选项卡,同时使用某人的演示应用程序(或制作自己的应用程序)。您应该能够按照请求完成,然后在您的 C# 代码中模拟它们。

澄清:我不建议使用 XMPP 与通道 API通信,而是用于客户端应用程序和 App Engine 应用程序之间的通信。我建议使用 FireBug,因为很明显流量JSON。

于 2010-12-05T03:51:31.677 回答