首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
V2EX  ›  分享创造

马上过年了,做了个抢红包小程序

  •  3
     
  •   pubby · 265 天前 · 5400 次点击
    这是一个创建于 265 天前的主题,其中的信息可能已经有所发展或是发生改变。

    真的是要靠体力抢的那种

    多人实时对战比拼手速,手速越快抢的越多。

    基于 mpvue,做了近一个月,包括最后 2 周专门针对安卓机优化性能

    社交红包分类的专用商户申请折腾了不少时间,今天刚上线,大家可以体验一下。给抢红包这个事情增加点乐趣

    老板说年会红包就用这个发了 -_-

    第 1 条附言  ·  260 天前
    又迭代了几个版本,主要针对安卓机性能再次优化,做到 100 人的大红包拼抢不卡顿


    放一个演示视频
    http://www.iqiyi.com/w_19s5ktgs41.html
    第 2 条附言  ·  260 天前
    第 3 条附言  ·  260 天前
    另外开发过程中遇到的一些问题做一下总结:

    前端:
    微信小程序在安卓上还是有很严重的性能问题,尤其在高频率 UI 更新、动效和高频次音频播放方面。

    优化主要从降低更新频率和减少更新数据入手,比如金额变化控制在 5 次 /s 左右,大于 10 人的情况下游戏开始后只更新第一页 TOP10 的数据。尽量保证体验的前提下 控制金币动画数量,控制音效播放实例数量,限制弹幕播放数量。

    同时精简 setData 到页面的数据大小,直传必要的数据。mpvue 用 1.0.18 之后的版本,带数据 diff 更新机制,可以减少 setData 大小。


    后端:
    后端用 go 写的,性能本身没问题。优化工作主要在控制广播玩家数据的频率,减少网络带宽。比如<10 人时只广播变化的内容,>10 人时只广播 top10 的数据。广播频率配合前端的更新频率也做了限制。

    其他:
    因为是实时对战的,需要做客户端和服务端的对时,减少每个玩家的手机时间误差。


    另外做了一套 websocket 连接接入服务,可以部署很多 websocket 连接接入服务,做到水平扩展。
    第 4 条附言  ·  260 天前
    如果红包没抢完,退款一般是 10 分钟内退回(也退回对应比例的手续费)。

    提现大概 10 秒内到账
    第 5 条附言  ·  85 天前
    图片引用坏了,补图:

    32 回复  |  直到 2019-02-22 17:42:31 +08:00
        1
    madantech   265 天前
    早打算做这种小程序了。。(现在在等着对公帐号下来)
        2
    dapang1221   265 天前
    不是说这个分类会监管资金么,还能提现到对公户吗,还是说在以往 T+7 基础上再往后延?
        3
    hackyuan   265 天前 via Android
    怎么防 点击器
        4
    pubby   265 天前
    @hackyuan 做了一个上限限制,不过都是好友间玩,用点击器会被打的 :D
        5
    pubby   265 天前
    @dapang1221 嗯,是需要专门申请社交红包类的微信商户的。
        6
    Linko   265 天前
    你这个可以。体验了下
        7
    pubby   265 天前
    @Linko 谢谢,有遇到啥问题不?
        8
    Linko   265 天前
    填红包参数的时候 感觉点击手势体验有点小奇怪。感觉上是输入框触摸区太小,有时候需要多次点击、也可能是我没操作。整体蛮好的。会和朋友过年玩玩
        9
    pubby   265 天前
    @Linko 感谢反馈
        10
    leon2013   264 天前
    不错,收藏了
        11
    GeekCourse   260 天前 via Android
    可以分享社*交*红*包类目的申请经验吗?
        12
    iannil   260 天前
    同楼上,也对这个问题很好奇
        13
    pubby   260 天前   ♥ 1
    @GeekCourse

    先申请小程序的社交红包类目,递交所有需要的资料(包括 ICP 证什么的),类目通过后会发消息给你一个开通专用商户号的连接,然后去开通商户号

    商户号拿到就可以 MA 授权绑定小程序支付了
        14
    GeekCourse   260 天前 via Android
    @pubby 所以没有 ICP 证就做不了了
        15
    dassh   260 天前
    不拼网络拼手速~~我喜欢!
        16
    ThirdFlame   260 天前
    不能发到群里玩 只能邀请人参加。
        17
    pubby   260 天前
    @ThirdFlame 可以发到群的啊?
        18
    Sharuru   260 天前
    已经玩起来了, 有趣。
        19
    pubby   260 天前
    @Sharuru 感谢支持!
        20
    pubby   260 天前
    @ThirdFlame 发红包的人分享出去的别人才能点进来抢,正在参与玩家二次转发出去的别人是进不来的。 是因为考虑到发红包的人一般不愿意让不认识的人抢。

    通过二维码分享出去的就没有这个限制。
        21
    dassh   260 天前
    最小单位能不能再小点,有些不认识人的群可以发发活跃气氛
        22
    pubby   260 天前
    @dassh 这个最小金额是产品那边定好的,年前不会改了。 最大金额是微信限制死的。
        23
    binaryify   260 天前
    不是说 ios 小程序不能调支付码
        24
    muyi   260 天前
    试了一下,确实有点意思,三个人玩,一开始抢到 50%,后来手速不行,最后只抢到了 30%,哈哈哈。。
        25
    pubby   260 天前 via Android
    @binaryify 那是虚拟支付不允许。发红包你朋友实际提现到钱的
        26
    pubby   260 天前 via Android
    @muyi
    开始阶段是大家一起瓜分红包总金额。如果点的慢有可能红包就抢不完。
    互抢阶段就是点的快的从慢的人手里抢
        27
    binaryify   260 天前
    @pubby 懂了
        28
    yaodd   260 天前
    不错不错,收藏了,过年可以玩一下···就是手续费 2%,不懂行情··感觉是不是有点高了?
        29
    pubby   260 天前 via Android
    @yaodd 2 %是微信规定的社交红包的服务费标准
        30
    yaodd   260 天前
    @pubby 噢噢,好吧···
        31
    waibunleung   240 天前
    @pubby 贴主,我想问一下你 golang 的实现思路是怎么样的,虽然这么问可能有点不合适,但是最近遇到了类似的需求,有点头疼,望指点一二~
        32
    pubby   240 天前
    @waibunleung 已经在那帖子里回了。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   860 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 18:53 · PVG 02:53 · LAX 11:53 · JFK 14:53
    ♥ Do have faith in what you're doing.