2016-05-10 4 views
0

私は、javax.websocketを使用してwebsocketの設定をしていますが、接続しているようですが、動作しません、java.lang.IllegalStateException:バイナリメッセージハンドラが見つかりませんWebSocket文字列onMessage、java.lang.IllegalStateExceptionを与える:バイナリメッセージハンドラが見つかりません

  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を試しましたが、そのようなコンパイラはありませんでした。

答えて

0

バイナリメッセージを受信する方法を定義する必要があります。たとえば、

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

詳細については、JavaDoc of OnMessage annotationを参照してください。

関連する問題