2012-12-13 59 views
1

我正在嘗試從GAE python後端推送隊列向客戶端發送Channel API消息。 this question的答案表示,該通道必須在後端進程中創建,以便能夠將消息從後端發送到客戶端。答案建議如何將推送隊列中後端創建的Channel API令牌發送到Python的前端?

「但是,您可以在您的後端實現一個調用createChannel的servlet,並將其返回到您的前端以包含在您的前端呈現的JavaScript中。

我的問題是:我如何獲得後端在推送隊列中創建的令牌到前端,以便我可以將令牌發送到客戶端?我使用以下方法創建後端推送隊列:

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

而且我還沒有能夠計算出如何輕鬆地將信息發送回前端。

回答

1

你想在後端創建一個頻道有點奇怪。 最明顯的方法是將其存儲在數據存儲區中的某個位置,並有一個單獨的URL,您的HTTP客戶端可以輪詢以獲取令牌。

如果可以的話,我建議在排隊任務之前在GAE前端創建通道,然後將該令牌與任務一起發送,並將該令牌嵌入HTTP響應中,然後將客戶端和後端可以進行通信。

+0

謝謝。正如你所建議的那樣,我最終使用數據存儲庫讓後端存儲它爲客戶端創建的令牌,然後我使用前端檢索它並響應客戶端的http請求。一旦客戶端擁有由後端創建的令牌,它就能夠從後端接收消息。在前端創建通道令牌似乎不允許後端向客戶端發送消息,如上面引用問題的答案中所述。 – dave

+0

在後臺創建一個頻道似乎是我的應用程序的最佳解決方案[在這裏討論](http://stackoverflow.com/questions/13448457/whats-the-best-way-to-get-data-back-from -a-任務在-GAE到A型 - 環 - 的任務-q)。需要使用後端才能超過10分鐘的最後期限,並且需要從後端發送消息以在數據可用時通知客戶端。 – dave

相關問題