首页 > 关于 websocket onmessage

关于 websocket onmessage

websocket 接收到数据时,会触发 onmessage, 如果onmessage里面的程序还没执行完,又收到数据,会被打断重新执行吗?


估计是多线程的。之前的肯定不会被打断,后面发来的可能会并行执行或等待上次的执行完毕才触发。


不会的。
不过可能你的消息可能会被阻塞掉,具体看你的代码怎么写了。
你可以模拟一个服务端,让onmessage等待20秒再打印客户端发送的数据;然后在客户端发送两次不一样的数据,正常情况下,服务端会打印出两个不一样的消息的。


不知道你用的是哪个WebSocket库,不过我觉得基本应该是一样的。
onmessage事件是基于stream的,数据是一边获取一边消耗的,onmessage事件就相当于在消耗。在监听函数未执行完之前,数据获取可能会被阻塞(看具体实现),但同一个WebSocket的onmessage事件不会被触发。

【热门文章】
【热门文章】