如何从 JavaScript 客户端向 Jetty WebSocket 发送请求头
How To Send Request Header To Jetty WebSocket From JavaScript Client
如何从 JavaScript 客户端向 Jetty WebSocket 发送请求头?
我在做什么?
在客户端。
- 需要在客户端的请求头中添加服务名称和服务版本
- 发送到服务器
在服务器端。
- 从请求头中识别服务
- 使用创建相应的输入转换器(使用 GSON)
- 使用该翻译器创建服务输入
- 调用服务。
我可以使用 org.eclipse.jetty.websocket.api.annotations.WebSocket 在服务器端获取服务名称和版本。但是..... 如何在客户端设置头部信息?
@OnWebSocketMessage
public void onText(Session session, String message) {
if (session.isOpen()) {
System.out.println(session.getUpgradeRequest().getHeader("service"));
System.out.println(session.getUpgradeRequest().getHeader("version"));
System.out.printf("Echoing back message [%s]%n", message);
session.getRemote().sendString(message, null);
}
}
感谢您的支持...
很遗憾,你不能。标准 WebSocket JavaScript API 不提供自定义 HTTP headers 的方法。另请参阅 heroku 开发中心的 this document。
如何从 JavaScript 客户端向 Jetty WebSocket 发送请求头?
我在做什么?
在客户端。
- 需要在客户端的请求头中添加服务名称和服务版本
- 发送到服务器
在服务器端。
- 从请求头中识别服务
- 使用创建相应的输入转换器(使用 GSON)
- 使用该翻译器创建服务输入
- 调用服务。
我可以使用 org.eclipse.jetty.websocket.api.annotations.WebSocket 在服务器端获取服务名称和版本。但是..... 如何在客户端设置头部信息?
@OnWebSocketMessage
public void onText(Session session, String message) {
if (session.isOpen()) {
System.out.println(session.getUpgradeRequest().getHeader("service"));
System.out.println(session.getUpgradeRequest().getHeader("version"));
System.out.printf("Echoing back message [%s]%n", message);
session.getRemote().sendString(message, null);
}
}
感谢您的支持...
很遗憾,你不能。标准 WebSocket JavaScript API 不提供自定义 HTTP headers 的方法。另请参阅 heroku 开发中心的 this document。