2015-10-20 14 views
-3

如何爲node.js中的所有客戶端會話使用一個整型變量並在客戶端html中訪問它們? (也就是說,我需要一個整數變量,它可以顯示在html頁面中,並可以在html頁面中更新。應該爲其他客戶端顯示新的更新值。)我知道這是一個愚蠢的問題。但是我很抱歉。我對node.js完全陌生,而且沒有太多時間。我最早需要一個解決方案。謝謝。對於node.js中所有會話通用的整型變量

+0

這樣做的一種方法是使用[服務器發送的事件](https://html.spec.whatwg.org/multipage/comms.html#server-sent-events),它們很容易設置在Node.js中,在客戶端非常容易。嘗試一下。 – Touffy

+0

node.js是一個非常模糊的標籤。你在用什麼? expressjs或socketio? – taesu

回答

1

有用於獲取公共變量到網頁多個選項:

  1. 您可以嵌入一個實際<script>標籤用在每一個從服務器提供的頁面的變量。如果使用模板引擎,這種技術將是最簡單的,以便每個頁面都可以包含一個公共的子模板。

  2. 您可以讓每個頁面在第一次加載以獲取變量值時向服務器發送ajax調用。

  3. 您可以讓每個頁面在第一次加載時創建與服務器的webSocket連接,然後當服務器接收到連接時,它可以發回變量的值。

當客戶想要更新變量,它有通知服務器幾個選項:

  1. 如果使用上面的WebSocket連接,就可以直接發送郵件到服務器該變量已被uddated併發送新的值。然後服務器可以向其他webSocket連接的客戶端廣播新的價值。

  2. 如果使用上述其他兩個選項中的任何一個,那麼無論客戶端何時需要更改該值,都可以向服務器發出ajax調用以更新該值。除了上面的webSocket選項之外,其他客戶端知道變量值何時更改的唯一方法是每個客戶端定期輪詢服務器以獲取變量的當前值(例如每隔30秒左右)。這不是特別有效。

因爲你的問題的一部分是對所有連接的客戶端知道什麼時候該變量有變化,你需要爲服務器「推」的更新值到所有客戶端的能力。這是webSockets的發明,可能是推薦的選擇。