java - 即時通訊系統和push推送系統都是怎麼實現的啊?
PHP中文网
PHP中文网 2017-06-12 09:27:28
0
6
815

一則訊息 如何透過伺服器中轉達到 指定的另一端的

方便的話 貼一段典型的程式碼

另外session儲存的時候 都儲存什麼資訊啊

PHP中文网
PHP中文网

认证0级讲师

全部回覆 (6)
黄舟

我的理解:
客戶端每間隔一段時間(例如一秒)向伺服器進行一次請求(發送request)。
如果服務端存在訊息則在回應(response)中標記訊息,通知客戶端伺服器端有新訊息。
客戶端向服務端發送請求拉去訊息,服務端回應。

request:有新消息嗎?收到請回答。
response:沒有。
request:有新消息嗎?收到請回答。
response:沒有。
request:有新消息嗎?收到請回答。
response:有,訊息id是123456。
request:請發送訊息id是123456的訊息內容。
response:訊息id:123456,訊息正文:驚!這個女人竟然在13億人面前做這種事……。

    迷茫

    訊息傳達是透過客戶端刷新向服務端獲得訊息的而不是服務端直接向客戶端發送

    以前確實有一些是直接在本地開埠由伺服器直接請求客戶端的,但現在用於訊息推送已經不多見了(通常用於區域網路內傳輸檔案或資訊)

    session儲存在伺服器,本地透過 Cookies 儲存 SESSION 的 name 和 id,伺服器透過這兩個而取得伺服器端儲存的內容

      滿天的星座

      目前常見的是兩種方案。
      1、客戶端主動輪詢(也就是每隔N時間向服務端詢問有沒有訊息。
      2、服務端主動推送。後端服務之間用socket,與前端通訊的話可以用websocket。

        女神的闺蜜爱上我

        http2.0 可以很好的處理,可以試試啊~

          曾经蜡笔没有小新

          都說是即時性的了,肯定要建立長連結這種了。比如socket。

            给我你的怀抱

            如果只是屬於產品的眾多功能之一,即時通信推薦題主對接IM,既可以節約一大筆開發支出,現有的IM提供商附帶的功能又比較全面,比自己開發要划算的多,題主可以看一下環信http://www.easemob.com/

              最新下載
              更多>
              網站特效
              網站源碼
              網站素材
              前端模板
              關於我們 免責聲明 Sitemap
              PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!