如何使用JEE7 Websockets将参数传递给@OnOpen方法,

时间:2014-02-04 17:25:17

标签: java java-ee websocket

我有这段代码

@ServerEndpoint(value = "/websocket")
public class Service {
    private String clientId; 
    @OnOpen
    public void init(Session session) throws IOException {
         //opening a websocket
         // get clientId
         clientId = // Code here to get initialization parameter.
    }

}

如何从打开套接字的客户端获取初始化参数?

1 个答案:

答案 0 :(得分:26)

取决于初始化参数的含义。你可以这样做:

@ServerEndpoint(value = "/websocket/{clientId}")
public class Service {
    private volatile String clientId; 
    @OnOpen
    public void init(@PathParam("clientId") String clientId, Session session) throws IOException {
         this.clientId = clientId;
    }
}

然后您使用以下网址访问您的终端:ws://host/contextPath/websocket/[clientId]

如果您使用查询参数,请参阅Session#getQueryString()