作者banana2014 (香蕉共和國)
看板Ajax
標題[問題] ajax聊天室最有效率的update方法…
時間Sun May 8 23:07:54 2016
我想用ajax來做一個簡單的聊天室
在update聊天訊息的部分我想了很久
因為我不曉得該怎麼讓伺服器端在一有新訊息出現時,自動傳更新給客戶端
也就是不要用「客戶端每隔5秒發送request到伺服器端檢查是否有新訊息」的這種方式
因為這樣太沒效率了
而且會浪費不必要的資源
如果遲遲沒有新訊息更新怎麼辦呢?
那是不是就一直讓電腦一直做不必要的檢查呢?
所以有沒有那種「伺服器給客戶端即時的更新資料」而不是「客戶端每隔一段時間檢查伺
服器是否有更新」的程式呢?
謝謝
**註:我是用php當作伺服器端語言
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.139.126.63
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ajax/M.1462720077.A.7DC.html
1F:→ ck574b027: websocket05/08 23:47
謝謝,剛剛查了一下websocket
好像要把通訊協定改成「ws://」,
想請問一下我需要在伺服器灌什麼嗎?
因為我的網站是租外面的虛擬主機,
不曉得他們的主機有沒有支援這個通訊協定
也不曉得需不需要灌什麼東西?
我對websocket不是很懂,
有些舊的瀏覽器好像也不支援這項技術,
所以要讓舊瀏覽器也能使用這個聊天室程式,
是不是還是只能用輪詢的方式更新資訊?
謝謝
※ 編輯: banana2014 (101.139.126.63), 05/09/2016 00:21:22
2F:推 mars90226: Google server push 就是你要的 05/09 00:19
3F:→ mars90226: *搜尋 (怕有人誤會成Google的功能) 05/09 00:20
4F:→ tooto1985: websocket 05/09 11:37
5F:推 mrbigmouth: 舊瀏覽器可以用ajax long polling技術 05/09 15:09
6F:→ ck574b027: "簡單的聊天室" 還要考慮瀏覽器,你應該先想一下用途和 05/09 16:28
7F:→ ck574b027: 誰會用,再決定要怎麼做。另外,如果是 php,搜尋 05/09 16:31
8F:→ ck574b027: php websocket,看那些library怎麼做,可能會比較快上手 05/09 16:33
9F:→ ck574b027: 舊的沒救,ws 本來就是為了解決這問題才出來的新規格。 05/09 16:36
10F:→ mrbigmouth: long polling至少不用每五秒都發request啦 XD 05/10 05:57
11F:推 leonjye: comet跟Server event 05/11 19:29
12F:推 rarex: 建議直接找library 起碼相容性和效能都有一定的處理了 05/11 21:44
13F:→ mygirl30229: 用NodeJS 加 socket.io 簡易版很好做 05/12 19:31
14F:→ ImL1s: websocket+1 05/24 04:28
15F:推 oToToT: 聊天室不是九成都在用websocket了嗎www 05/28 07:19