2013-05-20 35 views
3

我期望使用新的實時API擴展web應用程序以支持協作(javascript)。爲此,我還希望包括一個聊天內容,這個聊天內容可以讓用戶在同一個文檔上進行協作。經過大量搜索後,我無法找到可用於此的Drive API部分。此外,google提供的開源示例都沒有實現聊天功能。協作者與Google Drive/Realtime API聊天

是否有現有的服務/代碼,我可以用來插入 聊天到我的應用程序或我需要實現它?

如前所述,聊天應該可用於那些在同一文檔上進行協作的人。

PS我不需要任何特殊功能,只是一個簡單的聊天,如谷歌文檔等發現了一個

+0

如果您的應用程序託管在谷歌應用程序引擎上,您可以訪問谷歌的[渠道API](https://developers.google.com/appengine/docs/python/channel/overview)。至於驅動器API,我認爲你是正確的 - 他們沒有現有的聊天實施。 – rGil

+0

服務器端當前處於Node.js中,因此無法在appengine上運行。 – Giannis

+1

然後套接字。io是您的選擇 - 實時聊天。 – rGil

回答

1

現在我不知道這個問題的任何開箱即用的解決方案。有些人通過將實時數據模型中的聊天消息放在實時文檔中來實現聊天。

這工作正常,只要你不想也使用撤銷/重做功能。如果您使用的是撤消/重做,那麼人們最終會撤消聊天消息。

我們有興趣爲此最終增加一些更好的支持,但在短期內對任何事情都沒有承諾。

+2

我在問這個問題後不久就想到了這種方法。是不是可以在同一客戶端上打開兩個實時數據模型?(通常正在編輯的那個+聊天中的一個) – Giannis

+0

是的,這是可能的。這似乎是解決問題的合理解決方法。 –

+1

您可以創建一個[不可撤消的複合動作](https://developers.google.com/google-apps/realtime/undo#preventing_undo),當您嘗試撤消時,它將被跳過。 –

1

您需要建立自己的聊天系統,如谷歌剛剛殺死了XMPP的支持聊天API(很大程度上終止了API的使用)。新的環聊API無法訪問聊天(儘管其他一些方法可能派上用場:https://developers.google.com/+/hangouts/用於開發API)。

因此,你是留給自己的設備。但是,不要擔心,編寫聊天系統非常容易。我即將發佈一個(主要是免費的)服務來完成這項工作,所以如果你不想爲它編寫代碼,我可以讓你發佈。

但是,如果您希望爲其構建代碼,則最有可能要查看socket.io或postal.js。兩者都提供相同的事情:一個pub/sub模型。從那裏,你將需要實現的兩種選擇:

  • 長輪詢:不IE8的支持及以下

這將有助於:所有瀏覽器,但有點笨重

  • 的WebSockets支持作爲你的數據傳輸。

    其他兩種可能的選擇是付費服務:您可以改裝RabbitMQ來做你想做的事(然而,這看起來很笨拙)。你也可以改裝Meteord守護進程,它可以做你想要的,但是有一個過時的JS庫。

    儘管如此,所有這些關鍵字都是發佈/訂閱。

  • +0

    我發現這個庫看起來像它會來得心應手,如果我採取websocket路線:https://code.google.com/p/jquery-graceful-websocket/ – Giannis

    +0

    @Giannis:這隻能解決您的客戶端崩潰。您仍然必須實現輪詢和WS服務器端。就我個人而言,由於這個原因,我傾向於堅持長時間輪詢,並且一旦IE8下降到5%以下,很可能只會切換回websockets。 –