egg icon indicating copy to clipboard operation
egg copied to clipboard

【问题】 egg-socket.io如何异步并行发送消息?

Open zl-fire opened this issue 5 years ago • 3 comments

场景:

我使用egg-socket.io作为服务端,使用socket.io-client做为客户端,实现的一个即时通讯程序, 发送文本,图片,文件等各种消息都是正常的。

问题:

 当我在客户端A向客户端B进行分片发送大文件时,在文件未发送完时,A再次发出的其他消息别人就收不到,被阻塞了,
 只有当发送的文件完成之后,别人才能收到A后续发过来的消息,

个人认识

 感觉这应该就是消息发送是串行同步的,而我希望能够并行异步,不会因为前面的消息没法送完成就被阻塞,在官网上找了下,没发现如何让消息异步不阻塞,希望各位大佬能够指点下,万分感谢!

相关环境信息

 "egg": "^2.15.1",
 "egg-socket.io": "^4.1.6",
   socket.io-client:socket.io-client@2

zl-fire avatar Dec 18 '20 08:12 zl-fire

这个和 egg 无关,是 socket.io 本身使用的话题。

ngot avatar Dec 18 '20 08:12 ngot

好的,谢谢^_^,我在研究研究 @ngot

zl-fire avatar Dec 18 '20 08:12 zl-fire

@ngot 这个问题已解决 在socket.io官网上没找到相关实现,于是我重写了socket.emit方法, 写了个消息队列,实现了消息异步不阻塞 ,实现了我的需求

zl-fire avatar Dec 18 '20 10:12 zl-fire