Spring @SendToUser broadcast = false不适用于断开连接。危险广播

时间:2018-07-12 13:13:08

标签: java spring spring-boot websocket stomp

现在我正在使用Spring Boot 2.0.3进行开发

今天我发现有趣的活动

@SendToUser
@SendToUser(broadcast = false) 

通常都能正常工作。

但不能与断开连接一起使用。


@SendToUser(value = "echo", broadcast = false) 

有效。

connection 1 with user1(session id = 0)

connection 2 with user1(session id = 1)

connection 3 with user2(session id = 2)

他们不共享消息。

@SendToUser 

不会广播每个用户和连接。


@SendToUser(value = "echo", broadcast = false) 

不起作用。

connection 1 with user1(session id = 0)

connection 2 with user1(session id = 1)

connection 3 with user2(session id = 2)

connection 4 with user1(session id = 3) // <--- client send message and disconnect handler is working.

ex:客户端在处理程序完成之前断开连接。或在执行处理程序期间。

每个连接1和连接2(它们都是同一用户)都收到了连接4响应。

广播= false无效。响应广播相同的用户。

未收到连接3,因为连接3不是同一用户。


有时处理程序使用巨大的数据库连接,而同一用户连接时,就会发生此活动。

有人想取消这项活动吗?

谢谢。

0 个答案:

没有答案