fxqwoaini 2021-03-23 11:44 采纳率: 0%
浏览 21

socket.io如何处理队列消息?

socket.io如何处理队列消息?
现有一个广播屏,可能有1个或者任意多个用户会发送消息到广播屏进行广播,
每次广播需要一定的时间将内容播放完毕(播放声音的方法是异步的),
当同一时间有多个用户发送广播的请求时,
如何保证能按照顺序一个一个进行播放?
能否在socket.io中生成一个队列?
一条广播进来后,再播放下一条。
类似排队的机制,
应该如何处理这个问题,
困扰许久,恳请大神给予方案解决,
在此谢过。

  • 写回答

1条回答 默认 最新

  • 我不喜欢这个世界 2021-03-23 12:41
    关注

    分出一个管理员出来,不管有多少用户发消息都把消息发给管理员,存在队列里,管理员再负责把消息发送给大屏,管理员每次只发给大屏一个消息,等待消息播放完,大屏给管理员回传播放完的信号,这时候管理员再去看队列是否有下一个消息,有的话就传给大屏,没有的话就搁置,继续等待下一个消息过来。触发管理员的条件:一个消息进来先去看管理员的状态,如果管理员没在等待大屏信号回传,处于空闲状态,直接触发管理员,如果处于等待大屏回播放完毕信号的状态,那就直接塞进队列,因为每次收到回传信号都会检测一下队列,所以也都是有序的,且自动的,也不用轮寻。

    评论

报告相同问题?

悬赏问题

  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序