所以说,你根本就没有理解 websocket 是怎么工作的 比如,开始有用户访问 ws://www.a.com/products/1,服务器就启动一个服务进程 先完成该项服务的初始化工作,应答该用户后 就开始等待这个用户的下一次请求,并等待其他用户的到来和请求 直到管理员发出停止服务的指令(或系统崩溃)才结束 在这个过程中,程序并没有结束,所以你的拍卖价就那么一个(递增、递减都一样)。不可能出现延迟或混乱 再重申一下: http 是不可重入的,每个请求用各自进程处理,由于进程是独立的,所以有不同步现象 websocket 是可重入的,所有的请求都用同一的进程处理,所以不存在同步问题(除非用户自己掉线了而没发现)
[quote=引用 15 楼 wander_wind 的回复:] 服务器上借助操作系统的计划任务来实现 也可以在数据库保存原始价格和活动开启时间,写一个函数自动计算当前秒数的价格,用计算后的结果作为实时价格 后台可不必做定时器保证随时更新数据,有请求过来时根据原始价格当场计算即可
socket不是每秒更新的,而是持久通讯。
在你的 websocket 服务器中启动计时器不就行了?
访问 http 服务是 http://youahost/page.php 访问 websocket 服务是 ws://youahost/page.php 根本就不是一回事
[quote=引用 18 楼 ningyue0913 的回复:] [quote=引用 15 楼 wander_wind 的回复:] 服务器上借助操作系统的计划任务来实现 也可以在数据库保存原始价格和活动开启时间,写一个函数自动计算当前秒数的价格,用计算后的结果作为实时价格 后台可不必做定时器保证随时更新数据,有请求过来时根据原始价格当场计算即可
好处就是你可以无限扩展你的gateway,请求多了就横向扩展 crontab这个不靠谱,别用
服务器上借助操作系统的计划任务来实现 也可以在数据库保存原始价格和活动开启时间,写一个函数自动计算当前秒数的价格,用计算后的结果作为实时价格 后台可不必做定时器保证随时更新数据,有请求过来时根据原始价格当场计算即可
21,887
社区成员
140,364
社区内容
加载中
试试用AI创作助手写篇文章吧