回覆列表
  • 1 # 使用者3157362646651

    既然都用WebSocket(雙向)了,其實完全可以用WebSocket向伺服器提交資料,就不需要用AJAX再開一個HTTP(單向)連線了.

    樓主的線上客服系統要把使用者的訊息儲存到資料庫,可以考慮先把訊息儲存在Redis裡,在連線關閉時再把訊息儲存到MySQL,這樣就變成了一個連線(WebSocket或HTTP keep-alive)對應一次資料庫批次寫,效能更好.

    伺服器端建議用PHP的Swoole,處理WebSocket請求就3個事件(onOpen/onMessage/onClose)的事.

    不過需要注意的是,一些瀏覽器如IE9/IE8都是不支援WebSocket協議的,這時你可以考慮降級到HTTP(Swoole監聽onRequest事件就能處理HTTP),用一個HTTP(AJAX)長輪詢連線來實現訊息通知,伺服器端用Redis的PubSub實現訊息通知,Swoole提供有非同步Redis客戶端,能實現非同步訂閱Redis頻道實時獲取訊息.

  • 中秋節和大豐收的關聯?
  • 爆炒泡豇豆肉丁怎麼做好吃?