【问题标题】:How do I send a Channel API token created in a backend on a push queue to the front end in Python?如何将在推送队列的后端创建的 Channel API 令牌发送到 Python 中的前端?
【发布时间】:2012-12-13 01:56:24
【问题描述】:

我正在尝试将 Channel API 消息从 GAE python 后端推送队列发送到客户端。 this question 的答案是,必须在后端进程中创建通道,以便能够从后端向客户端发送消息。答案表明

“但是,您可以在后端实现一个 servlet,该 servlet 调用 createChannel 并将其返回到您的前端,以便包含在您的前端呈现的 javascript 中。”

我的问题是:如何将后端在推送队列中创建的令牌发送到前端,以便将令牌发送给客户端?我使用以下内容创建后端推送队列:

taskqueue.Task(url='/flow/', params = {'json_request': json_request}, target='flowbackend').add(queue_name='flow-queue')

我还没有弄清楚如何轻松地将信息发送回前端。

【问题讨论】:

    标签: python google-app-engine backend channel-api


    【解决方案1】:

    您想在后端创建一个频道有点奇怪。 最明显的方法是将其存储在数据存储中的某个位置,并有一个单独的 URL,您的 HTTP 客户端可以轮询该 URL 以获取令牌。

    如果可以的话,我建议在将任务排入队列之前在您的 GAE 前端创建通道,然后将令牌与任务一起发送,并将令牌嵌入到客户端的 HTTP 响应中,然后是客户端和客户端后端可以通信。

    【讨论】:

    • 谢谢。正如您所建议的,我最终使用数据存储区让后端存储它为客户端创建的令牌,然后让前端检索它并响应客户端的 http 请求。一旦客户端获得了后端创建的令牌,它就能够从后端接收消息。如上述问题的答案所述,在前端创建通道令牌似乎不允许后端向客户端发送消息。
    • 在后端创建通道似乎是我的应用程序的最佳解决方案,正如 here 所讨论的那样。必须使用后端才能使其超过 10 分钟的最后期限,并且需要从后端发送消息以在数据可用时通知客户端。
    猜你喜欢
    • 2021-01-31
    • 2021-04-06
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 2018-07-06
    • 2019-01-02
    相关资源
    最近更新 更多