[問題] 如何判斷使用者有沒有在線上

看板Ajax作者 (Arim5566)時間11年前 (2014/04/30 14:22), 11年前編輯推噓7(7018)
留言25則, 6人參與, 最新討論串1/1
各位板友好 我想設計一個聊天室,當使用者登入的時候,會顯示在線上 但是當使用者關閉分頁的時候,就會顯示離線... 請問這個應該要找什麼關鍵字,可以怎麼做? 謝謝 -- ~宅男的四個徵兆~ ∠□ ○ ! * \○/ ★    (○ ? ╦╦└□ " ○□═ □   □> ║║√√ ╦══╦ ∥    |\ 一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.169.133 ※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1398838963.A.ACE.html

04/30 14:32, , 1F
你聊天室是怎麼連接server的?
04/30 14:32, 1F

04/30 14:33, , 2F
如果是websocket這種常駐連接就直接抓斷線event
04/30 14:33, 2F

04/30 14:33, , 3F
不然就只能一段時間內未傳訊息視為離線了
04/30 14:33, 3F

04/30 15:52, , 4F
純前端無法,請搭配後端!
04/30 15:52, 4F

04/30 17:08, , 5F
樓上 沒有純前端聊天室這種東西吧!?!?!? XDDDDD
04/30 17:08, 5F

04/30 17:08, , 6F
(你是自己跟自己聊天嗎?XD)
04/30 17:08, 6F

04/30 18:10, , 7F
我是說純前端無法做線上人數統計 XD
04/30 18:10, 7F

04/30 21:18, , 8F
不考慮效能的話,每 15 秒寫一次時間,超過 30 秒沒回應
04/30 21:18, 8F

04/30 21:18, , 9F
即視為下線。
04/30 21:18, 9F

04/30 22:25, , 10F
我覺得polling的方式不是很好 應該有event driven的方法
04/30 22:25, 10F

04/30 22:25, , 11F
不然聊天室的話 我之前有用firebase玩過 你可以看看他API
04/30 22:25, 11F

04/30 23:39, , 12F
看後端是什麼平台? 解決方案各有不同!
04/30 23:39, 12F

05/01 00:54, , 13F
polling的方式當然不理想 不過不是所有後台都有得選
05/01 00:54, 13F

05/01 04:30, , 14F
找socket.io
05/01 04:30, 14F

05/01 04:31, , 15F
如果你要做聊天室 就專注在聊天室的功能
05/01 04:31, 15F

05/01 04:31, , 16F
如果你要研究server side push 才繼續去看websocket, long
05/01 04:31, 16F

05/01 04:31, , 17F
poll 這些東西
05/01 04:31, 17F

05/01 04:33, , 18F
純前端當然有辦法, 辦法就是用third party cloud service
05/01 04:33, 18F

05/01 04:33, , 19F
請google firebase, pubnub這些詞..或是用google channel
05/01 04:33, 19F

05/01 05:09, , 20F
使用者關閉分頁的時候,就會顯示離線 <= push
05/01 05:09, 20F
補充一下,我是用 websocket,只是想知道如果是其他方法的話可以怎麼做 ※ 編輯: Arim (114.39.57.46), 05/01/2014 09:09:51

05/01 17:10, , 21F
非websocket的話就上面說的定時check了
05/01 17:10, 21F

05/01 17:11, , 22F
不過上面提到的socket.io不錯 非websocket都幫你包的
05/01 17:11, 22F

05/01 17:11, , 23F
像socket一樣來用了
05/01 17:11, 23F

05/02 10:44, , 24F
socket.io後端限用node.js 不然用firebase等是不錯解
05/02 10:44, 24F

05/02 10:45, , 25F
但我不會說你用了firebase就叫純前端XD 你只是用別人的
05/02 10:45, 25F
文章代碼(AID): #1JO9QphE (Ajax)
文章代碼(AID): #1JO9QphE (Ajax)