首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何识别java服务器端点中websocket url中的数据

如何识别java服务器端点中websocket url中的数据
EN

Stack Overflow用户
提问于 2017-09-06 09:54:35
回答 1查看 1.3K关注 0票数 1
代码语言:javascript
复制
ws://host:port/cms/ocpp/CBNO7

这是我的第一个websocket程序,这里url定义"cms“是项目名"ocpp”是服务器端点,最后一个是每个客户端点user.How的数据更改,以获取服务器endpoint.My java服务器端点代码中的最后数据,如下所示,

代码语言:javascript
复制
`import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.websocket.OnClose;
    import javax.websocket.OnError;
    import javax.websocket.OnMessage;
    import javax.websocket.OnOpen;
    import javax.websocket.Session;
    import javax.websocket.server.ServerEndpoint;
    import javax.ws.rs.PathParam;
    @ServerEndpoint("/ocpp")
    public class OcppWebsocketServer { 
    @OnOpen
    public void onOpen(Session session) throws IOException {
    System.out.println(session.getId() + " has opened a connection");
     try {
                session.getBasicRemote().sendText("Connection Established");
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
         @OnMessage
        public void onMessage(String message, Session session) {
            System.out.println("Message from " + session.getId() + ": " + message);
        }
          @OnError
        public void onError(Throwable error) {
              System.out.println("error = " + error);
            Logger.getLogger(OcppWebsocketServer.class.getName()).log(Level.SEVERE, null, error);
        }
        @OnClose
        public void onClose(Session session) {
            System.out.println("Session " + session.getId() + " has ended");
        }
    }`

如何在端点获取CBNO7

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-08 19:09:32

您需要使用PathParamhttp://docs.oracle.com/javaee/7/api/javax/websocket/server/PathParam.html

你最终会有这样的结果

代码语言:javascript
复制
@ServerEndpoint("/cms/ocpp/{parameter}")
public class OcppWebsocketServer{


     @OnMessage
     public void onMessage(@PathParam("parameter") String param, String message, Session session) {
         // it'll print CBN07
         System.out.println(param);
     }
}

编辑确保导入的是javax.websocket.server.PathParam,而不是JAX-RS。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46072155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档