【发布时间】:2020-09-20 01:45:57
【问题描述】:
我正在开发一个 web 应用程序,它使用 spring websocket 连接向特定用户发送多条消息。 我有一个 spring mvc 控制器,当从客户端接收到 STOMP 时,它开始向用户发送消息。是这样的:
@Controller
public class Controller{
@Autowired
private SimpMessagingTemplate template;
@MessageMapping("/")
@SendToUser("/queue/user")
public void myMethod(ClientMessage msg, Principal principal){
Object myObject = new Object();
//stuff
while(true){
//more stuff
this.template.convertAndSendToUser(principal.getName(), "/queue/user", myObject);
}
}
}
现在我的问题是:有办法知道客户端何时关闭(或重新加载)浏览器选项卡?
当客户端关闭选项卡以终止控制器执行时,我想退出 while 循环。
我想通过检查一些东西来停止while循环,比如:while(!session.isClose())
谁能帮我解决这个问题?
【问题讨论】:
标签: java spring spring-mvc websocket spring-websocket