马上过年了,做了个抢红包小程序 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
pubby
V2EX    分享创造

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

  •  3
     
  •   pubby 2019-01-28 13:42:02 +08:00 7800 次点击
    这是一个创建于 2514 天前的主题,其中的信息可能已经有所发展或是发生改变。

    真的是要靠体力抢的那种

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

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

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

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

    第 1 条附言    2019-02-02 13:00:51 +08:00
    又迭代了几个版本,主要针对安卓机性能再次优化,做到 100 人的大红包拼抢不卡顿


    放一个演示视频
    http://www.iqiyi.com/w_19s5ktgs41.html
    第 2 条附言    2019-02-02 13:35:03 +08:00
    第 3 条附言    2019-02-02 14:30:42 +08:00
    另外开发过程中遇到的一些问题做一下总结:

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

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

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


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

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


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

    提现大概 10 秒内到账
    第 5 条附言    2019-07-27 13:52:24 +08:00
    图片引用坏了,补图:

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

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

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

    通过二维码分享出去的就没有这个限制。
    dassh
        21
    dassh  
       2019-02-02 15:15:21 +08:00
    最小单位能不能再小点,有些不认识人的群可以发发活跃气氛
    pubby
        22
    pubby  
    OP
       2019-02-02 15:17:54 +08:00
    @dassh 这个最小金额是产品那边定好的,年前不会改了。 最大金额是微信限制死的。
    binaryify
        23
    binaryify  
       2019-02-02 15:27:46 +08:00
    不是说 ios 小程序不能调支付码
    muyi
        24
    muyi  
       2019-02-02 15:28:26 +08:00
    试了一下,确实有点意思,三个人玩,一开始抢到 50%,后来手速不行,最后只抢到了 30%,哈哈哈。。
    pubby
        25
    pubby  
    OP
       2019-02-02 15:29:28 +08:00 via Android
    @binaryify 那是虚拟支付不允许。发红包你朋友实际提现到钱的
    pubby
        26
    pubby  
    OP
       2019-02-02 15:32:44 +08:00 via Android
    @muyi
    开始阶段是大家一起瓜分红包总金额。如果点的慢有可能红包就抢不完。
    互抢阶段就是点的快的从慢的人手里抢
    binaryify
        27
    binaryify  
       2019-02-02 15:32:52 +08:00
    @pubby 懂了
    yaodd
        28
    yaodd  
       2019-02-02 16:22:56 +08:00
    不错不错,收藏了,过年可以玩一下就是手续费 2%,不懂行情感觉是不是有点高了?
    pubby
        29
    pubby  
    OP
       2019-02-02 16:27:12 +08:00 via Android
    @yaodd 2 %是微信规定的社交红包的服务费标准
    yaodd
        30
    yaodd  
       2019-02-02 17:07:56 +08:00
    @pubby 噢噢,好吧
    waibunleung
        31
    waibunleung  
       2019-02-22 17:30:54 +08:00
    @pubby 贴主,我想问一下你 golang 的实现思路是怎么样的,虽然这么问可能有点不合适,但是最近遇到了类似的需求,有点头疼,望指点一二~
    pubby
        32
    pubby  
    OP
       2019-02-22 17:42:31 +08:00
    @waibunleung 已经在那帖子里回了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2830 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 14:18 PVG 22:18 LAX 06:18 JFK 09:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86