簡體   English   中英

如何使服務器與客戶端對話

[英]how to get the server to talk to the client

我是Web開發的新手,請原諒我的無知。

我想知道的是,是否有一種方法可以讓服務器向客戶端廣播消息。 這樣的一個示例是具有新聞源的客戶端頁面,並且每當有新故事傳入服務器時,服務器就會將該信息發送給客戶端,並且客戶端會更新其頁面的新聞源。 我不希望客戶端每隔幾秒鍾就不斷輪詢服務器,問“嘿,現在有新故事嗎?現在怎么樣?現在怎么樣?” 我希望客戶端做自己的事情,然后被服務器發出的消息打斷。

有沒有辦法做到這一點?

對於較新的瀏覽器,可以使用Web套接字打開與服務器的連續連接,然后客戶端/服務器可以在需要時彼此發送消息。

對於較舊的瀏覽器,通常這樣做的方式是客戶端必須“輪詢”服務器以按一定的時間表詢問服務器,如果服務器中有任何新消息。 由於防火牆,本地安全設置,未知位置等原因,服務器通常無法直接連接到客戶端,因此客戶端必須連接到服務器。 輪詢可以是常規輪詢,也可以每60秒通過ajax調用輪詢一次,以詢問是否有新內容,或者可以是長時間輪詢,其中客戶端詢問是否有新內容,如果有新內容,則進行輪詢。服務器立即返回該數據。 但是,沒有什么新內容,服務器會在一段時間內掛起輪詢請求,以等待是否有新內容。 最終,服務器將返回沒有任何內容的服務器,或者如果有則返回一條新消息。 當客戶端獲得響應時,它將重新開始“長輪詢”序列。 Comet是庫形式的“長期投票”的一個示例,它易於實現。

Pusher是量身定制的http://pusher.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM