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

我有这个代码
@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.
    }

}

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

解决方法

取决于你的初始化参数是什么意思你可以这样做:
@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;
    }
}

然后,您将使用以下URL访问您的端点:ws:// host / contextpath / websocket / [clientId].

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

相关文章

背景 阿里java开发规范是阿里巴巴总结多年来的最佳编程实践,...
# 前言 在面试这一篇我们介绍过[CountDownLatch和CyclicBarr...
多线程编程是每一个开发必知必会的技能,在实际项目中,为了...
背景 在我们系统中有这么一个需求,业务方会通过mq将一些用户...
# 前言 为了更好的进行开发和维护,我们都会对程序进行分层设...
前言 关于动态代理的一些知识,以及cglib与jdk动态代理的区别...