业务场景:一个房间N个人,1为房主,房主进入房间之后,点击开始比赛后,发送一条消息至后端,后端拿到消息后给全部人发送第一道题,然后进入sleep20秒的休眠。
就在这个时候,房主再次选择答案进行再次onMessage交互。此时问题就出现了,前端发了消息(确定发了),但是后端需要等待很久(20S左右)才能收到。
经反复检查,发现假设:房主点击开始比赛时用的是1号线程,他选择答案时,居然也是1号线程,但是此时1号线程处于sleep阶段。所以无法处理消息,导致消息延迟。
为什么会这样?该怎么解决呢?期待大佬的回复~