[請益]如何設計一個以秒計費且不會被用戶逃漏的方法?

作者: rum579 (斗芮米)   2020-05-17 19:49:39
討論不限平台,但為了方便說明以下以 Android 為例。
假設有個服務,例如通話、影片等等,每秒鐘要收取 n 元代幣,若用戶代幣不足則立即結束服務。
方案ㄧ:
每秒向 Server 發起 Http 請求進行扣費。
缺點:
請求數可能過多,Server 負載過重。
方案二:
Client 紀錄開始時間,當用戶代幣不足或主動結束服務時,計算開始時間與結束時間差再回報給 Server。
缺點:
若用戶主動斷網並清除 APP 資料再重新登入,Client 之前紀錄的時間會不見導致無法得知用戶到底使用多久。
請問有沒有方法可以紀錄用戶使用秒數並確實回報給 Server?
作者: moom50302 (武林三羚鱷)   2020-05-17 20:06:00
服務開始前先去伺服器取餘額計算秒數,在介面執行到這個秒數就強制結束,這樣如何?是說,跟錢有關的事情怎樣都不會在客戶端處理吧?很不保險
作者: x000032001 (版廢了該走了)   2020-05-17 20:09:00
開個ws記連線斷線
作者: BZnoo (Uba)   2020-05-17 20:10:00
起迄點都在Server端提供多久的上行服務決定,跟客戶端無關
作者: Nonsense8 (胡說)   2020-05-17 20:12:00
服務以秒計費,所以服務在取用的時候就要扣了不是嗎??雖然沒用過,但服務應該也是從server端分發的吧
作者: MOONY135 (談無慾)   2020-05-17 20:14:00
開ws然後每秒ping pong吧
作者: tsao1211 (Sunday)   2020-05-17 20:15:00
Websocket
作者: MOONY135 (談無慾)   2020-05-17 20:16:00
方案二根本不會有問題啊 服務開始的時候用戶id就被記錄了 就算他清 她下次登入還是要用那個id 然後資料都在server上面吧
作者: yourinfo (...)   2020-05-17 21:23:00
server決定一切 client只能被動來問還能不能連
作者: MOONY135 (談無慾)   2020-05-17 21:31:00
ws ping pong server不就知道那時候短線?
作者: yourinfo (...)   2020-05-17 21:33:00
基本上client連線問一次server就夠了 剩下的自己思考...
作者: MOONY135 (談無慾)   2020-05-17 21:40:00
一開始先給十秒 然後client 放個timer 時間內沒有接到server來訊,client就結束應用。心跳包應用。就算被逃也只有損失十秒
作者: AndCycle (AndCycle)   2020-05-17 21:43:00
還有,這樣看來你的client有兩方,兩方都去做啊
作者: invidia (莎莉竟然會飛)   2020-05-17 22:17:00
會斷網清資料的先解約這個客戶吧
作者: s06yji3 (阿南)   2020-05-17 22:22:00
以普通瀏覽器來講斷網清資料還滿常見的。我都習慣定期清cache
作者: abelyang (Abel)   2020-05-17 22:43:00
提高清除後重新下載成本,WS/WSS,服務網格化
作者: ckp4131025 (ckp4131025)   2020-05-17 22:47:00
通話結束的時候兩個clinet 都發通知給server阿?兩個都主動斷網會有時間差的
作者: roccqqck (ccqq)   2020-05-17 22:58:00
遊戲?
作者: Masakiad (Masaki)   2020-05-17 23:18:00
不是server socket send資料時檢驗就好了嗎
作者: lylu (理路)   2020-05-17 23:28:00
只有我覺得都讓client直接互連了還要以秒計費有點坑嗎XD
作者: OppOops (Oops)   2020-05-17 23:47:00
方案二, 每n分鐘驗證一次, 結束時再傳一次另外 server 也可不定期的抽檢
作者: new122851 (未若柳絮因風起)   2020-05-18 00:22:00
websocket
作者: Nonsense8 (胡說)   2020-05-18 01:21:00
如果不是server持續分發的服務,那我覺得要考慮別種收費方式了...把收費計算放在client真的很詭異
作者: longlongint (華哥爾)   2020-05-18 01:40:00
把通話內容錄下來就知道幾秒了(誤影片你不會學動畫瘋嗎
作者: umum29 (....)   2020-05-18 04:27:00
放client的計算只能是輔助 就像身分驗證也是主客端都要做WebSocket+1永遠不要"直接"相信client端來的資料
作者: TakiDog (多奇狗)   2020-05-18 11:45:00
ws
作者: moon2519 (~X~X~)   2020-05-18 12:09:00
ws
作者: somefatguy   2020-05-18 13:28:00
30樓XD,跟我想的一樣
作者: Sieg2010 (Sieg)   2020-05-18 13:31:00
如果都不連server, 為什麼要以秒計費
作者: AndCycle (AndCycle)   2020-05-18 14:44:00
如果雙方都會斷網清資料大概就不會用你這套軟體通信啦..
作者: Ghamu (貓丸)   2020-05-19 02:53:00
你應該找個簡單的做 偏激使用者不要太認真 只要有8成腦殘無法破解即可 等到破解的人越來越多 你也撈到一筆錢了 在想怎麼改即可
作者: bndan (seed)   2020-05-19 13:52:00
想了一圈 = = 推樓上.."更"萬全的對策對應增加的成本 是否有其價值...
作者: xeonchen (陳小叉)   2020-05-20 06:04:00
client 每次和 server 要個五分鐘 credit,多退少補這樣只要每五分鐘和 server 連一次,可以嗎?如果使用者清除資料,就等於直接丟掉剩餘的 credit
作者: Jichang (C.C.Lemon)   2020-05-20 19:33:00
樓上想的跟我一樣 不是少補 應該說是要client要預繳下一個週期的費用 如果資料沒清 有機會退回 多繳的部分

Links booklink

Contact Us: admin [ a t ] ucptt.com