Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 使用STOMP简单代理时的错误处理_Spring_Spring Websocket_Stomp_Spring Messaging - Fatal编程技术网

Spring 使用STOMP简单代理时的错误处理

Spring 使用STOMP简单代理时的错误处理,spring,spring-websocket,stomp,spring-messaging,Spring,Spring Websocket,Stomp,Spring Messaging,我正在使用@EnableWebSocketMessageBroker创建简单的STOMP代理。当RuntimeException发生在@MessageMapping方法中时,我希望收到STOMPERROR帧,但默认情况下它不会这样工作 似乎在简单代理中不支持错误帧: 另一方面,有一种机制可以发送ERROR帧,该帧在spring-websocket中已经可用,其代码引用了一些与简单代理相关的类: 当@MessageMapping方法中发生运行时异常时,如何启用发送错误帧的机制?快速简便的方法是

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

似乎在简单代理中不支持
错误
帧:

另一方面,有一种机制可以发送
ERROR
帧,该帧在
spring-websocket
中已经可用,其代码引用了一些与简单代理相关的类:


@MessageMapping
方法中发生
运行时异常时,如何启用发送
错误
帧的机制?

快速简便的方法是在客户端上有一个特定的错误处理程序订阅,在对@MessageMapping端点进行任何调用之前进行订阅。然后在websocket服务器中使用try-catch块包装对该方法的所有调用,并处理发生的异常。然后是一个简单的例子,比如:

messagingTemplate.convertAndSend( "/topic/clientControl/1234", "SHUT_DOWN"); (or send to user etc, depends on your subscription model)

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

快速简便的方法是在客户端上拥有一个特定的错误处理程序订阅,该订阅在对客户端进行任何调用之前进行订阅@MessageMapping端点。然后在websocket服务器中使用try-catch块包装对该方法的所有调用,并处理发生的异常。然后是一个简单的例子,比如:

messagingTemplate.convertAndSend( "/topic/clientControl/1234", "SHUT_DOWN"); (or send to user etc, depends on your subscription model)

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

您好,我尝试过,但它正在发送消息帧,我想实现发送错误帧,这是STOMP标准的一部分。您好,我尝试过,但它是发送消息帧,我想实现发送错误帧,这是STOMP标准的一部分。