在C#中使用Google Channel API

时间:2010-12-05 03:28:43

标签: c# google-app-engine comet cometd channel-api

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

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

2 个答案:

答案 0 :(得分: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

如果您感兴趣,请进行投票,您可以更详细/更具吸引力的用例,更好。

谢谢!

答案 1 :(得分:3)

如果可能,您可以考虑直接使用XMPP。 C#有several

您可能希望获得FireFox + FireBug的副本。然后看看FireBug的“网络”标签,同时玩某人demo app(或制作自己的)。您应该能够通过请求,然后在C#代码中模拟它们。

<强>澄清:   我不是建议使用XMPP与渠道API 进行通信,而是建议您在客户端应用程序和App Engine应用程序之间进行通信。我建议使用FireBug,因为很明显流量 JSON。