【问题标题】:Spring boot Getting domain name in @MessageMappingSpring boot 在@MessageMapping 中获取域名
【发布时间】:2020-06-18 18:40:03
【问题描述】:

在 Spring Boot 中,我可以通过 @RequestHeader String host in @RequestMapping 获取域 但是我怎样才能在@MessageMapping 中做同样的事情呢?

例如。

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

我将 Spring Boot 托管在 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 代码中获取域名

谢谢

【问题讨论】:

    标签: java spring-boot websocket


    【解决方案1】:

    您可以尝试使用@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));
    }
    

    【讨论】:

    • 那么方法中如何获取域名呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多