Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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/0/performance/5.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
SpringWebSocket:如何自定义会话断开消息?_Spring_Spring Mvc_Spring Websocket_Spring Session - Fatal编程技术网

SpringWebSocket:如何自定义会话断开消息?

SpringWebSocket:如何自定义会话断开消息?,spring,spring-mvc,spring-websocket,spring-session,Spring,Spring Mvc,Spring Websocket,Spring Session,我真的想知道是否有一种方法可以从WebSocketRegistryListener自定义SESSION\u EXPIRED\u STATUS中的消息。默认实现如下所示: static final CloseStatus SESSION_EXPIRED_STATUS = new CloseStatus( CloseStatus.POLICY_VIOLATION.getCode(), "This connection was established under an

我真的想知道是否有一种方法可以从
WebSocketRegistryListener
自定义
SESSION\u EXPIRED\u STATUS
中的消息。默认实现如下所示:

static final CloseStatus SESSION_EXPIRED_STATUS = new CloseStatus(
        CloseStatus.POLICY_VIOLATION.getCode(),
        "This connection was established under an authenticated HTTP Session that has expired");
Spring安全机制和Spring会话机制包括:

  • 用户注销
  • 相应的会话在会话存储库中无效
  • WebSocketRegistryListener
    捕获
    SessionDestroyedEvent
    并关闭以前销毁的http会话的所有websocket会话(关闭状态为
    session\u EXPIRED\u状态为
  • 因此,在我的应用程序中,我应该自定义这种行为,因为不仅用户可以使其会话无效,管理员也可以这样做。或者,会话可能因超时而无效。对于每一种情况,我都应该以不同的理由发送消息。有人能帮我吗? 我发现
    WebSocketSessionDecorator
    带有
    close(CloseStatus状态)
    ,但我不知道如何将其添加到websockets的装饰器列表中