【问题标题】:websocket string onMessage, gives java.lang.IllegalStateException: Binary message handler not foundwebsocket 字符串 onMessage,给出 java.lang.IllegalStateException:找不到二进制消息处理程序
【发布时间】:2016-09-05 10:14:02
【问题描述】:

我有一个使用 javax.websocket 的 websocket 设置,它似乎可以连接,但无法正常工作,它不断给出 java.lang.IllegalStateException: Binary message handler not found

            final WebSocketContainer webSocketContainer = ContainerProvider.getWebSocketContainer();
            Session session = webSocketContainer.connectToServer(new Endpoint() {
                 @Override
                public void onError(Session session, Throwable thr) {
                    // TODO Auto-generated method stub
                    super.onError(session, thr);
                    System.out.println("checkerWindow.DownloadMessages().new Endpoint() {...}.onError()");
                    thr.printStackTrace();
                }

                @Override
                 public void onOpen(Session session, EndpointConfig EndpointConfig) {
                    System.out.println("checkerWindow.DownloadMessages().new Endpoint() {...}.onOpen()");

                     try {
                         //send login details
                         //login:<deviceid>:<secret>\n
                         session.getBasicRemote().sendText("login:"+deviceid+":"+secret+"\n");
                     }
                    catch(Exception ex){
                        System.err.println("Exception=" + ex.toString());
                        ex.printStackTrace();
                    }
                 }

                 @OnMessage
                 public void onMessage(String message) {
                     System.out.println("Received message: "+message);
                 }

                 @Override
                 public void onClose(Session session, CloseReason closeReason) {
                     System.out.println("checkerWindow.DownloadMessages().new Endpoint() {...}.onClose()");
                 }

             }, ClientEndpointConfig.Builder.create().build(), URI.create("wss://client.pushover.net/push"));

我已经尝试过 ByteBuffer 但编译器不喜欢那样。

【问题讨论】:

    标签: java websocket binary pushover


    【解决方案1】:

    您应该定义一个接收二进制消息的方法。例如,

    @OnMessage
    public void onMessage(byte[] message) {
        ......
    }
    

    详情请参阅JavaDoc of OnMessage annotation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-04
      • 1970-01-01
      • 2015-06-07
      • 2019-03-06
      相关资源
      最近更新 更多