WebSocket怎么携带参数前端和java后端代码怎么写
时间: 2024-02-09 22:11:37 浏览: 70
考拉开源仿微信uniapp前端+JAVA后端IM即时通讯
前端代码可以像下面这样写:
```javascript
const socket = new WebSocket("ws://example.com/socket?id=123");
```
这个例子中,我们通过URL传递了一个名为`id`的参数,值为`123`。后端代码可以通过Java的`@ServerEndpoint`注解来定义WebSocket服务端。在服务端代码中,可以通过`EndpointConfig`类的`getUserProperties()`方法获取WebSocket连接的URL参数,具体的实现方式如下:
```java
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import javax.websocket.server.ServerEndpointConfig;
import java.util.List;
import java.util.Map;
@ServerEndpoint(value = "/socket")
public class MyWebSocketEndpoint {
@OnOpen
public void onOpen(Session session, EndpointConfig endpointConfig) {
ServerEndpointConfig config = (ServerEndpointConfig) endpointConfig;
Map<String, List<String>> params = config.getUserProperties().get("javax.websocket.queryString");
String id = params.get("id").get(0);
// do something with the id
}
}
```
在这个例子中,我们通过`ServerEndpointConfig`类的`getUserProperties()`方法获取了WebSocket连接的URL参数。然后可以通过参数的键名来获取传递的值。在这个例子中,我们通过`params.get("id")`获取了传递的`id`参数的值。你可以根据需要使用这些参数来处理WebSocket连接。
阅读全文