[请益]如何设计一个以秒计费且不会被用户逃漏的方法?

楼主: 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