2010-03-24 147 views
2

我願意在App Engine上實現聊天網站。但是我發現App Engine不會允許我使用服務器推送。 (因爲它會在30秒後殺死迴應)。appengine上的聊天應用程序

  1. 那麼可以使用其他方法 ?輪詢會導致不好的用戶 的經驗?含義是否會讓用戶 等待一段時間 從服務器中檢索新消息?

  2. 什麼是理想的民意調查 區間?

  3. 如果您使用非常小的輪詢間隔,我的帶寬是否會耗盡?我會遭受性能問題嗎?

+0

阿克沙伊嗨, 你找到你的答案嗎? 我也在尋找類似的東西。 – Himanshu 2011-02-17 15:47:56

回答

1

難道你不能只使用XMPP而不是網站嗎?這將是一個更好的方法。投票肯定不會很好地擴展,絕對不會提供良好的用戶體驗。

XMPP with appengine

+0

GAE上的XMPP非常出色。目前我正在使用它爲音樂應用程序實現管理控制檯/管理員警報界面。它速度非常快,似乎沒有使用很多帶寬。然而,免費配額(http://code.google.com/appengine/docs/quotas.html#XMPP)對於流行的Web應用程序來說可能不會太遠。 – mdm 2010-03-24 13:15:10

+0

@Robin:感謝您的回覆。實際上我想實現一個網站,比如omegle.com.This Webisite不需要用戶擁有uservname和passwd.Is在XMPP中必須使用該用戶才能使用xmpp。還需要另一名成員在他的好友列表中與他聊天? – akshay 2010-03-24 13:43:02

+0

它將在2017年底關閉 – huuthang 2017-01-06 03:19:42

0

我握住連接(即不發送響應),直到它死,然後重新建立它聽到周圍的人說工作。雖然30秒沒有那麼多。

如果以這種方式完成,那麼對於用戶來說,每30秒輪詢一次,它仍然會感覺更加敏感。

關於帶寬使用情況:取決於有效負載,「典型」HTTP請求的範圍可能從幾百字節到幾KB,特別是使用cookie。

平均規模爲5kB(悲觀),每30秒總計約24 MB/24小時。也許你可以通過在你的cookies中設置一個路徑來減小這個大小,這樣他們就不會發送這些連接。也許你不需要每隔30秒再發送一次有效載荷。

2

這是一個相當古老的問題,但我一直在尋找類似的答案。我認爲Channel APIhttp://code.google.com/appengine/docs/java/channel/)更適合這項任務。據我所知,XMPP很適合與應用程序進行交互,但不能與其他用戶進行交互。 Channel API通過HttpRequest實現推送通知。我只是找到了一個聊天室,在這裏的一個例子:https://bitbucket.org/keakon/channelchat

+0

XMPP是一種即時消息協議。與其他用戶進行交互絕對是一件好事。 – Robin 2011-08-23 11:58:47