如何使用Quarkus WebSockets Next的WebSocketConnector设置查询字符串?
在Quarkus WebSockets Next中给WebSocketConnector设置查询字符串的方法
可以直接通过构造包含查询字符串的目标URI来实现,WebSocketConnector的baseUri方法支持传入带查询参数的完整WebSocket URI,不需要额外的特殊API。
直接拼接查询字符串的示例
如果你的目标地址是固定或已知的,直接拼接查询参数到URI中即可:
String serverUriWithQuery = "ws://localhost:8080/your-endpoint?token=abc123&client-id=xyz"; webSocketConnector.baseUri(serverUriWithQuery).connect();
动态构建带查询参数的URI(推荐)
如果需要动态生成查询参数,使用JAX-RS的UriBuilder来构建URI可以避免手动拼接的格式错误:
import javax.ws.rs.core.UriBuilder; // 假设原始serverUri是不带查询参数的基础地址 URI targetUri = UriBuilder.fromUri(serverUri) .queryParam("token", "abc123") .queryParam("client-id", "xyz") .build(); webSocketConnector.baseUri(targetUri).connect();
服务端获取查询参数
在Quarkus WebSockets Next的服务端,可以通过@QueryParam注解直接获取这些参数:
import io.quarkus.websockets.next.OnOpen; import jakarta.ws.rs.QueryParam; public class MyWebSocketEndpoint { @OnOpen public void onConnect(@QueryParam("token") String token, @QueryParam("client-id") String clientId) { // 使用获取到的查询参数 } }
内容的提问来源于stack exchange,提问作者Kirill Byvshev
相关产品推荐
相关产品推荐

