java - Spring boot 在@MessageMapping中获取域名

标签 java spring-boot websocket

在Spring Boot中,我可以通过@RequestMapping中的@RequestHeader String host获取域名 但我怎样才能在 @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 是来 self 的 websocket 客户端的请求对象

我想在我的 @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));
}

关于java - Spring boot 在@MessageMapping中获取域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60557097/

相关文章:

java - 使用 RMI 的 HTTP 隧道安全性

java - Spring 5 安全 OAuth2 登录重定向循环

iis - IIS 上托管的 ASP.NET 5 (DNX) 中的 WebSocket 无法正常工作

java - 检查字符串是否包含 char 数组中的值

java - 使用 prepareStatement jdbc java 创建任何表名

spring - Spring如何读取应用程序yml

java - 如何使 junit 测试在 springboot 应用程序中使用嵌入式 mongoDB?

http - Boost beast websocket 服务器异步接受失败,缓冲区溢出

java - 使用套接字与 XML API openssl s_client -connect with Java 进行通信

java - 从 map 获取我的 DFS 遍历的 getNode - Java