如何实现不定时向客户端发送通知
客户端发起一个请求到服务器,服务器处理后需要在n秒时发送一个通知给客户端,然后在0-n秒之间,客户端可能有新的请求过来,这时候n秒发送通知可能就变成了在m秒的时候发通知。
举个例子:顾客点完菜下单后,10分钟菜没有上齐,需要通知到厨房提示某桌加急,但是在5分钟的时候客户按了暂停,6分钟时又恢复了计时,此时10分钟时不需要再提示加急,需要在11分钟时提示加急。
有什么办法可以比较好的实现这个功能。同时在同一秒时可能会有很多桌顾客进行了该操作,如何能保证时间到时所有桌位的消息都能准时发出
思路
- 通过在数据库中记录所有桌位要发通知的时间,每秒轮序获取所有要发的消息
- laravel自带的广播系统看起来很适合该需求,但是我看文档上没有提到如何发通知到安卓或者ios客户端,不知道有没有办法可以实现
另外有没有别的更好的实现方式,希望大家可以提供些思路
补充
我想解决的问题不是如何推送客户端的问题,是想知道,在发送通知的时间是动态的且同一秒可能会有很多条消息,如何能同时发出,且性能也比较理想。
现在的思路就是每次请求到达服务器后计算出要发出的时间,放入延时队列,同时设置一个type为true,队列执行时需要满足type是true时才发送消息。当过程中时间发生变化,比如暂停,修改type为false,则时间到时之前的队列不执行,重新恢复计时后再修改回type为true,添加新的队列。
不知道还有没有别的更好的实现方式,另外想问一下 laravel自带的广播我看是和web之间通信的,那如果我想和安卓或者ios之间通信能用这个吗?
推荐文章: