[問題] 類似fb,plurk,youtube那種即時更新

看板Web_Design作者 (真是有趣的地方)時間11年前 (2012/09/13 09:58), 編輯推噓5(509)
留言14則, 4人參與, 最新討論串1/1
關於這種不用 client browser reload 定期發 request 去問 server 有無新的資料 大概的作法就是 comet or long-polling 這類想法 node.js 也有套件可以直接使用 假設要做個簡單的即時聊天室 server 端當然可以一直監看有新的資料就送給正在連線的 client client A ----------| client B -----> chatroom A <------ server check chatroom A data client C ----------| 那回到標題 要是像 facebook, plurk, youtube 這種大量 client 連線的程式 server 端就真的開這麼多的子程序去監看有無新的資料嗎?? client A -----> post A <----- server process 1 check A client B -----> post B <----- server process 2 check B -----> post C <----- server process 3 check C client C -----> post D <----- server process 4 check D 例如 plurk 你的頁面有很多朋友的討論 都會自動更新上來 也就表示一個討論串 背後就一個 server 程序在監看?? 那這樣 server 不就變的很操?? 還是有更簡易的作法? (我的想法太暴力了) 例如: server 的監看程序掌握數個討論串 輪流著看 (變的比較不及時?? 這樣好像都取決於 server 的 power ?? client A -----> post A <----- server process 1 check A client B -----> post B <----- then check B -----> post C <----- then check C client C -----> post D <----- then check D ... and repeat 會這麼問的原因是目前有用 node.js 的 socket.io 寫個聊天室 但是要拓展到這種很多討論串的 是不是就要用 socket.io 開很多房間? 不然就是要整理每個 post 對應到的 socketid 然後一直檢查!!!? 這樣好像有點搞笑 ?? 那如果要像最後一個例子? 有無工具可以用? 或是說有更好的想法?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.194.164 ※ 編輯: LearnRPG 來自: 140.127.194.164 (09/13 09:59)

09/13 10:30, , 1F
node.js是event drive 對他來說這樣成本很低
09/13 10:30, 1F

09/13 11:02, , 2F
是說node.js一直檢查active socketid對應到的post ??
09/13 11:02, 2F

09/13 11:03, , 3F
post有更新就回傳給對應的socketid 這樣成本很低??
09/13 11:03, 3F

09/13 19:15, , 4F
我不大懂node.js, 不過既然說是event driver 的話,應該
09/13 19:15, 4F

09/13 19:16, , 5F
就不需要持續去檢查吧,事件被觸發再處理就好
09/13 19:16, 5F

09/14 02:29, , 6F
是 RPG 大大
09/14 02:29, 6F

09/14 10:23, , 7F
樓上大大應該會吧 給點 idea 吧 ......
09/14 10:23, 7F

09/14 10:23, , 8F
如果說是event driver, 這樣是不是說 server有一堆event
09/14 10:23, 8F

09/14 10:24, , 9F
等著被driver...? 我的意思大概是一篇文章就要有一個
09/14 10:24, 9F

09/14 10:24, , 10F
event standby在那邊??
09/14 10:24, 10F

09/14 10:35, , 11F
socket.io會把資訊從clinet端推到server端 然後觸發在server
09/14 10:35, 11F

09/14 10:36, , 12F
端的事件..所以根本不需要去檢查..等觸發就好
09/14 10:36, 12F

09/14 10:36, , 13F
但是使用socket.io必須要一直保持TCP(UDP)?連線..
09/14 10:36, 13F

09/14 10:41, , 14F
而其他後端java php asp在維持session上面做法就是一直檢查
09/14 10:41, 14F
文章代碼(AID): #1GKJtPjR (Web_Design)