在春季启动中,我可以通过@RequestHeader String host中的@RequestMapping获取域
但是如何在@MessageMapping中做同样的事情?

例如。

@RequestMapping("/abc")
public String getHost(@RequestHeader String host) {
    return host;
}


我将弹簧靴存放在www.example.com中,然后在访问www.example.com/abc时返回www.example.com

我想在@MessageMapping代码中做同样的事情

下面是我的@MessageMapping代码。

@MessageMapping("/cba")
public void cba(SimpleRequest request, SimpMessageHeaderAccessor accessor) {
    //System.out.println(host);
}


SimpleRequest是我的websocket客户端的请求obj

我想在我的@MessageMapping代码中获取域名

谢谢

最佳答案

您可以尝试使用@Header批注
见下面的例子

@MessageMapping("/optionalHeaders")
public void optionalHeaders(@Header(name="foo", required=false) String foo1, @Header("foo") Optional<String> foo2) {
  this.method = "optionalHeaders";
  this.arguments.put("foo1", foo1);
  this.arguments.put("foo2", (foo2.isPresent() ? foo2.get() : null));
}

09-25 18:50