2016-04-30 60 views
0

您需要提供一個ppt讓N個正在查看它的用戶在他們的瀏覽器中生活。你所擁有的是一個打開ppt的網頁,它有兩個按鈕:next和previous。您需要設計 - 將會發生什麼/按下按鈕如何反映所有用戶的變化。在線數據共享

我想到了可能的方法:

  1. 客戶端(用戶)將發送請求到服務器(主持人)用於獲取更新的頁面狀態。這種方法的問題在於,如果客戶端太多,每秒向服務器的請求數量將不斷增加,並且該模型不可擴展。

  2. 觀察者設計模式類型的方法:所有的用戶將自己註冊到服務器,並且每當服務器上有更新時,它都會通知所有的客戶端。

有什麼建議嗎?

我在網上閱讀了一些關於Optical Transformation和H.239的鏈接,但最終所有內容都使用Google Real-Time API,因此我不確定底層技術是如何工作的。

什麼是可以在服務器和客戶端之間進行雙向通信的網絡協議?

回答

0

Aporoach 2在這種情況下更好。由於它是基於瀏覽器的,所以最好的網絡協議可以是websocket。有很多支持websocket連接到客戶端的服務器(playframework,java中的jetty,nodejs中的socket.io)。所有現代的咖啡機也支持websocket。 IE 9或以下這將無法正常工作。有些客戶端可用,它們提供回退機制,以防客戶端瀏覽器不支持websocket,例如長輪詢,jsonp輪詢等。

在服務器端,雖然它們將處於空閒狀態,但會打開文件描述符限制服務器應該足夠了。每個打開的連接也會增加一些內存開銷,但所有這些技術系統都可以設計爲可以水平擴展。