首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用STOMP simple broker时的错误处理

使用STOMP simple broker时的错误处理
EN

Stack Overflow用户
提问于 2019-04-04 23:03:58
回答 1查看 1.4K关注 0票数 1

我正在使用@EnableWebSocketMessageBroker创建简单的STOMP代理。当RuntimeException@MessageMapping方法中发生时,我希望接收STOMP ERROR帧,但默认情况下它不是这样工作的。

在简单代理:https://github.com/spring-projects/spring-framework/blob/master/spring-messaging/src/main/java/org/springframework/messaging/simp/SimpMessageType.java#L28-L44中似乎不支持ERROR框架

另一方面,有一种机制可以发送spring-websocket中已经可用的ERROR帧,并且它的代码引用了一些与简单代理相关的类:https://github.com/spring-projects/spring-framework/blob/master/spring-websocket/src/main/java/org/springframework/web/socket/messaging/StompSubProtocolHandler.java#L349

如何在RuntimeException@MessageMapping方法中发生时启用发送ERROR帧的机制?

EN

回答 1

Stack Overflow用户

发布于 2019-04-04 23:58:09

快速而简单的方法是在客户端上有一个特定的错误处理程序订阅,在调用@MessageMapping端点之前订阅该错误处理程序。然后,用try catch块包装对websocket服务器中该方法的所有调用,并处理发生的异常。然后这是一个简单的例子,做一些类似的事情:

代码语言:javascript
复制
messagingTemplate.convertAndSend( "/topic/clientControl/1234", "SHUT_DOWN"); (or send to user etc, depends on your subscription model)

您可以向客户端发送错误消息并允许其进行处理,也可以决定如何在服务器端执行操作,并拥有一个允许服务器将命令传递给客户端的控件订阅。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55519260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档