[問題] ajax聊天室最有效率的update方法…

作者: banana2014 (香蕉共和國)   2016-05-08 23:07:54
我想用ajax來做一個簡單的聊天室
在update聊天訊息的部分我想了很久
因為我不曉得該怎麼讓伺服器端在一有新訊息出現時,自動傳更新給客戶端
也就是不要用「客戶端每隔5秒發送request到伺服器端檢查是否有新訊息」的這種方式
因為這樣太沒效率了
而且會浪費不必要的資源
如果遲遲沒有新訊息更新怎麼辦呢?
那是不是就一直讓電腦一直做不必要的檢查呢?
所以有沒有那種「伺服器給客戶端即時的更新資料」而不是「客戶端每隔一段時間檢查伺
服器是否有更新」的程式呢?
謝謝
**註:我是用php當作伺服器端語言
作者: ck574b027 (荒圍!定厝!賊!妹!)   2016-05-08 23:47:00
websocket
作者: mars90226 (火星人)   2016-05-09 00:19:00
Google server push 就是你要的*搜尋 (怕有人誤會成Google的功能)
作者: tooto1985 ( )   2016-05-09 11:37:00
websocket
作者: mrbigmouth (大嘴先生)   2016-05-09 15:09:00
舊瀏覽器可以用ajax long polling技術
作者: ck574b027 (荒圍!定厝!賊!妹!)   2016-05-09 16:28:00
"簡單的聊天室" 還要考慮瀏覽器,你應該先想一下用途和誰會用,再決定要怎麼做。另外,如果是 php,搜尋php websocket,看那些library怎麼做,可能會比較快上手舊的沒救,ws 本來就是為了解決這問題才出來的新規格。
作者: mrbigmouth (大嘴先生)   2016-05-10 05:57:00
long polling至少不用每五秒都發request啦 XD
作者: leonjye   2016-05-11 19:29:00
comet跟Server event
作者: rarex (╰(〒皿〒)╯)   2016-05-11 21:44:00
建議直接找library 起碼相容性和效能都有一定的處理了
作者: mygirl30229 (Cian)   2016-05-12 19:31:00
用NodeJS 加 socket.io 簡易版很好做
作者: ImL1s   2016-05-24 04:28:00
websocket+1
作者: oToToT (屁孩)   2016-05-28 07:19:00
聊天室不是九成都在用websocket了嗎www

Links booklink

Contact Us: admin [ a t ] ucptt.com