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

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

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

    真的是要靠体力抢的那种

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

    基于 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   ·   实用小工具   ·   3013 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:19 · PVG 22:19 · LAX 06:19 · JFK 09:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.