[問題] 關於這樣的ajax技術

看板Ajax作者 (Victor)時間16年前 (2009/07/28 01:13), 編輯推噓2(2011)
留言13則, 7人參與, 最新討論串1/1
最近我需要寫到一些即時性的ajax程式 一個簡易的線上聊天室,聊天室是即時的東西 有訊息發生時才告訴大家這樣 可是礙於http都是一個request結束這樣 就算keep-alive也是被動的 沒辦法由server主動告知client 所以最直觀的方法就是不停的問 可能幾秒就問一次server 但是我很擔心server的負載問題 當然一多 每個人都狂問個不停 server就像被request轟炸似的 時間設太短server負載重 時間設太長client端反應慢 我一直一來有想到一個辦法 不過我不知道可不可行 也不知道這樣的技術該用什麼名自稱乎 我是這樣想的,server在收到client的http request之後 先不急著送response給client 在timeout之前 假設 30秒好了,在這段期間內就等等看有沒有事件發生 例如有使用者說話了 一但這事情發生了 就把事件寫到response 傳回給client 大概的概念像這樣 無事件發生 ○ ------------------------------------------- ● 等待開始 timeout 發生事件,回傳response ○ ------------------- ● 等待開始 timeout 如此一來,原本的request轟炸,改成這種事件觸發的方式 應該可以更有效率吧? 我一直覺得gmail或其它東西可能都有在用這樣的技術 只是我沒研究,也沒有接觸過或看過類似的東西 所以我想請問一下這樣的技術可行嗎? 如果已經有人在用了 那這樣的技術又叫什麼名字? -- 哇咧咧 創意投票系統 http://walele.com 易記學 程式設計教學 http://ez2learn.com/ 易記學 程式設計討論區 http://forum.ez2learn.com VICTOR's 個人Blog http://blog.ez2learn.com/ 財報分析王 http://victorlin.serveftp.org/stock/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.90.54

07/28 01:36, , 1F

07/28 01:48, , 2F
感謝
07/28 01:48, 2F

07/28 01:50, , 3F
這個方法最大的問題在server端
07/28 01:50, 3F

07/28 01:50, , 4F
像apache那種worker pool的模式就不適合這方法
07/28 01:50, 4F

07/28 01:51, , 5F
我想還沒那麼普及可能是因為常見的server難以配合
07/28 01:51, 5F

07/28 01:51, , 6F
我打算用Twisted實作就沒這個問題
07/28 01:51, 6F

07/28 01:51, , 7F
Twisted的非同步方式天生就很適合這樣的方式
07/28 01:51, 7F

07/28 02:45, , 8F
gmail 有用這個技巧 :3
07/28 02:45, 8F

07/28 12:55, , 9F
server-push? 聽說用flash或銀光可以達到這樣的效果
07/28 12:55, 9F

07/28 12:56, , 10F
javascript我還想不到該怎麼做@@"
07/28 12:56, 10F

07/28 13:08, , 11F
這是在 server 端作,而且有些分享器/firewall對這感冒
07/28 13:08, 11F

07/28 13:24, , 12F
plurk 應該有用 comet ...
07/28 13:24, 12F

07/28 22:46, , 13F
07/28 22:46, 13F
文章代碼(AID): #1ARU0ZMs (Ajax)
文章代碼(AID): #1ARU0ZMs (Ajax)