我想使用“服务器端事件”通知所有客户端。我没有找到做广播的方法,所以我决定在内部使用Eventitter。这会导致内存泄漏。当sse坏了的时候,我如何广播或取消订阅Eventitter(我认为这是一个糟糕的解决方案)
My bad problem solution
我想使用“服务器端事件”通知所有客户端。我没有找到做广播的方法,所以我决定在内部使用Eventitter。这会导致内存泄漏。当sse坏了的时候,我如何广播或取消订阅Eventitter(我认为这是一个糟糕的解决方案)
My bad problem solution
1条答案
按热度按时间hl0ma9xz1#
感谢您在StackOverflow上提问!
注意:如果您以文本格式而不是截图提交代码,下次会更好:)
根据您提供的代码判断,每次Event被服务器触发时,您都要注册一个新的侦听器,这将在发出的事件中触发n^2次事件。
您可以实施两种解决方案:
1.检查
'channel.bindAccount'
事件是否已经注册,不要再注册。我不推荐这个解决方案,但它可以做到。1.在构造函数中注册事件并在sse中发出该事件。示例代码:
在构造函数中注册事件并在sse上发出它是一个想法,但是我不完全确定有效负载的确切来源,也没有测试代码。