V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wq67200976
V2EX  ›  PHP

电影选座,基于 swoole 时时更新数据,是否可以这样做呢

  •  
  •   wq67200976 · 2018-01-05 20:44:48 +08:00 · 3002 次点击
    这是一个创建于 2500 天前的主题,其中的信息可能已经有所发展或是发生改变。

    描述: 1.用户 A 访问选座页面,和服务器建立连接,通知 socket 服务器,然后从数据库拿到已购买的座位 ID,返回给客户端,客户端进行座位锁定。(此步骤之前是通过 ajax 轮询查询数据库拿到座位 ID,进行锁定)。

    2.用户 B 选择座位下单,此时新的订单入库,用户 A 的页面如何更新座位数据,是不是在用户 B 下单后,并且订单信息插入数据库后,再去拿到当前已经和 socket 建立连接 ID,然后推送座位信息。把刚刚购买的座位推送给客户端。

    问题: 我上面描述的并没有涉及提交订单 15 分钟后如果没有支付,那选择的座位将被释放。只是想先把 socket 这块的逻辑走通,建立长连接,时时更新座位信息,我上面这样的逻辑正确吗,如果不是这样,烦请各位帮忙提供些思路呢。

    7 条回复    2018-01-06 20:23:57 +08:00
    elarity
        1
    elarity  
       2018-01-05 22:30:06 +08:00
    应该没啥问题 , 干吧 。觉得数据库慢 , 可以直接走 redis
    winglight2016
        2
    winglight2016  
       2018-01-06 10:08:47 +08:00   ❤️ 1
    你放心吧,项目一开始没什么用户的,用轮询也没问题,说不定上线没几天项目就黄了~~~

    真想磨练自己的技术,就用 websocket+redis 保持前端和后台的状态一致
    jun0205
        3
    jun0205  
       2018-01-06 10:15:13 +08:00 via Android
    选座搞实时没什么太大用吧。
    wq67200976
        4
    wq67200976  
    OP
       2018-01-06 16:20:30 +08:00
    @winglight2016 哈哈,的确没什么用户,其实主要还是想磨练技术,优化优化现有代码。
    wq67200976
        5
    wq67200976  
    OP
       2018-01-06 16:22:11 +08:00
    @jun0205 这不还是想提升提自己,把现有代码优化优化呢。
    wq67200976
        6
    wq67200976  
    OP
       2018-01-06 16:22:25 +08:00
    @elarity 嗯嗯 开搞
    Liang
        7
    Liang  
       2018-01-06 20:23:57 +08:00 via iPhone
    提交订单的时候再查一次就可以了,合并一开始就搞得太复杂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2703 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:29 · PVG 17:29 · LAX 01:29 · JFK 04:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.