【问题标题】:Consuming Google Channel API in C#在 C# 中使用 Google Channel API
【发布时间】:2011-05-20 10:09:39
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    使用 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

    如果您有兴趣,请点赞,您能说出的详细信息/令人信服的用例越多越好。

    谢谢!

    【讨论】:

    • 如果可以的话,我会支持你,但我微不足道的 5 点声望点不会让我这样做。然而,我已经在 appengine 问题跟踪器上给这个问题加了星标。
    • @Moshie,我建议直接使用 XMPP 而不是 Channel API——如果这对他的应用程序可行的话。人们会对了解与 Channel API 交互的通用 API 感兴趣。这样我们也可以拥有其他语言的本地库。前不久群里有讨论过这个。
    • 非常好的一点:您可以完全跳过 Channel API 并直接使用 XMPP。您需要某种方式将用户登录到 XMPP 服务,并将机器人添加到他们的名册中(或者拥有一个接受消息而不将机器人添加到名册的端点)。大量的工作,但绝对是可能的,而且很漂亮!
    • 你们都是谷歌的吗?听起来像是典型的办公室走廊讨论。 :) 无论如何,我目前正在创建一个类似程序的信使,在桌面到服务器之间运行 xmlrpc。渠道的主要价值主张是服务器推送能力。听起来 google 的 xmpp 服务不容易提供这个,还是我错了?
    • 它不仅仅是一个聊天应用程序。我想将其视为聊天应用程序的谷歌浪潮。很抱歉缺少细节,我们一直在黑暗中运营,直到发布。
    【解决方案2】:

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

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

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

    【讨论】:

    • 淘汰了 fiddler,确认了 Moishe 下面所说的,看起来它是以 Json 的形式返回的,而不是 xmpp。
    • 我建议使用 XMPP 而不是 Channel API。如果直接使用 XMPP 是一种选择,它只会移除额外的故障点层(通道 API)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多