作者Deltaguita (貝纳頌)
看板AndroidDev
標題Re: [問題] GCM延遲問題
時間Tue Apr 22 10:21:11 2014
gn板友有點誤會推播了
你回想一下line或是facebook
只有當使用者不在聊天頁面(離線)才會有通知對吧?
"推撥用在即時通訊"的實際應用是
當用戶為離線(不在聊天室窗)
即時通訊server
向推撥 server發出請求通之該用戶有新訊息(請該用戶上線)
如果該使用者
已經在線上了,就不需要透過GCM通知有新訊息
直接由server把packet往client丟
這樣的好處是不用一直維持連線網路連線(省電)
有甚麼不懂的可以再提問,我再補充
※ 引述《gn00742754 (西門貓)》之銘言:
: 今天跑了範例的GCM,
: 發現GCM延遲長達5~30秒,
: 在這麼長的延遲下,
: 就算在跟Server要資料,
: 整個聊天也會很緩慢,
: 感覺需要自己架設一個推播伺服器才有辦法達成聊天的需求,
: 真的有人用GCM來實作聊天功能嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.37.235
※ 文章網址: http://webptt.com/m.aspx?n=bbs/AndroidDev/M.1398133274.A.20D.html
1F:→ lovelycateye:收到 GCM 和要不要出現通知是兩件事情唷 04/22 10:33
2F:→ Deltaguita:fine,請把通知用戶,改為通知client 04/22 10:46
3F:→ lovelycateye:我只是單純覺得單從通知有沒有出現就判斷別人 App 04/22 11:03
4F:→ lovelycateye:去遠端取得資料的時間點,可能證據上不太夠。 04/22 11:04
5F:→ Deltaguita:你可以考慮root你的手機,然後去看line的db 04/22 11:33
6F:→ Deltaguita:收到通知,跟進到聊天室窗之後,哪些table會有變化 04/22 11:34
7F:→ Deltaguita:line聊天內容都沒有加密,可以看得很清楚 04/22 11:34
8F:→ lovelycateye:已root只是懶得看,後來你提出的這些東西才是足夠 04/22 11:35
9F:→ lovelycateye:支持你說法的證據。 04/22 11:36
10F:→ lovelycateye:不過使用者是否在線這點由 Server 偵測似乎有點費工 04/22 11:40
11F:→ Deltaguita:client跟server有沒有連線的話 server應該是要知道的 04/22 11:45
12F:→ Deltaguita:他至少要知道每個connection idle了多久 04/22 11:46
13F:→ Deltaguita:是不是應該切斷,他原本就該做的事情,何來費工之說? 04/22 11:49
14F:→ lovelycateye:因為多一個要去檢查連線狀況才決定要不要發的工 04/22 12:00
15F:→ Deltaguita:有更好的方式願聞其詳 感謝分享!! 04/22 12:04
17F:→ lovelycateye:我是從這邊推測應該不會是一個 connection 在那邊 04/22 12:12
18F:→ Deltaguita:我看不出來......,spdy 不是只有加速http嗎? 04/22 12:47
19F:→ lovelycateye:再看了一下相關資料,看來應該我之前對這部份有誤解 04/22 13:30
20F:→ Deltaguita:還是謝謝你的分享,這個部落格很不錯 04/22 13:38
21F:→ lovelycateye:我對 SPDY 的 Server Push 有很大的誤解啊 囧> 04/22 13:41
22F:→ lovelycateye:果然看書不要偷懶只看標題 04/22 13:41
23F:推 crazyleaf:謝謝D大幫忙解惑~ 04/24 12:20