关于socket编程,java中 onOpen中能否接受多个参数,给个实例
时间: 2024-06-04 14:10:20 浏览: 153
可以接受多个参数,例如:
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.util.logging.Logger;
@ServerEndpoint(value = "/test", configurator = MyEndpointConfigurator.class)
public class MyWebSocket {
private final Logger logger = Logger.getLogger(this.getClass().getName());
private Session session;
private String param1;
private int param2;
@OnOpen
public void onOpen(Session session, EndpointConfig config) {
logger.info("WebSocket opened: " + session.getId());
this.session = session;
this.param1 = (String) config.getUserProperties().get("param1");
this.param2 = (int) config.getUserProperties().get("param2");
logger.info("Params received: " + param1 + ", " + param2);
}
// other methods
}
在这个例子中,onOpen方法接受两个参数:Session和EndpointConfig。其中Session是与客户端交互的WebSocket会话,而EndpointConfig则是用来传递自定义参数的配置对象。MyEndpointConfigurator类是一个配置器,用来读取传递的参数并将其设置到EndpointConfig的userProperties属性中。在onOpen方法中,我们可以通过EndpointConfig的userProperties属性获取传递过来的参数。