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

标签 java jakarta-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.
    }

}

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

最佳答案

取决于你所说的初始化参数是什么意思。你可以这样做:

@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 - 如何使用 JEE7 Websockets 将参数传递给 @OnOpen 方法,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21559260/

相关文章:

java - 异步运行任务并在线程 Activity 后返回

java - Google Play 游戏服务 VS Google Drive

java - 在 Java 或 JavaScript 中读取目录的 SVN 属性

java - 没有原始属性的复合主键

jakarta-ee - 各种应用程序服务器中单个 jar 的类加载器策略?

java - devserver 中的 google 端点上出现 404

java - Websocket连接自动关闭?

javascript - 如何在 Firefox 扩展中使用模块?

java - 使用 List<type> 而不是 ArrayList<Hashmap<String,String>> 进行 ListView

android - 使用 websocket 的 Expo v27/v28 Android 应用程序崩溃