楼主:
rum579 (斗芮米)
2020-05-17 19:49:39讨论不限平台,但为了方便说明以下以 Android 为例。
假设有个服务,例如通话、影片等等,每秒钟要收取 n 元代币,若用户代币不足则立即结束服务。
方案ㄧ:
每秒向 Server 发起 Http 请求进行扣费。
缺点:
请求数可能过多,Server 负载过重。
方案二:
Client 纪录开始时间,当用户代币不足或主动结束服务时,计算开始时间与结束时间差再回报给 Server。
缺点:
若用户主动断网并清除 APP 资料再重新登入,Client 之前纪录的时间会不见导致无法得知用户到底使用多久。
请问有没有方法可以纪录用户使用秒数并确实回报给 Server?
作者: moom50302 (武林三羚鳄) 2020-05-17 20:06:00
服务开始前先去服务器取余额计算秒数,在接口执行到这个秒数就强制结束,这样如何?是说,跟钱有关的事情怎样都不会在客户端处理吧?很不保险
作者: BZnoo (Uba) 2020-05-17 20:10:00
起迄点都在Server端提供多久的上行服务决定,跟客户端无关
服务以秒计费,所以服务在取用的时候就要扣了不是吗??虽然没用过,但服务应该也是从server端分发的吧
作者: tsao1211 (Sunday) 2020-05-17 20:15:00
Websocket
方案二根本不会有问题啊 服务开始的时候用户id就被记录了 就算他清 她下次登入还是要用那个id 然后资料都在server上面吧
server决定一切 client只能被动来问还能不能连
ws ping pong server不就知道那时候短线?
基本上client连线问一次server就够了 剩下的自己思考...
一开始先给十秒 然后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
通话结束的时候两个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 也可不定期的抽检
如果不是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:00ws
作者:
moon2519 (~X~X~)
2020-05-18 12:09:00ws
作者: 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要预缴下一个周期的费用 如果资料没清 有机会退回 多缴的部分