Java 类javax.websocket.MessageHandler 实例源码

项目:tomcat7    文件:WsFrameBase.java   
@SuppressWarnings("unchecked")
private void sendMessageBinary(ByteBuffer msg, boolean last)
        throws WsIOException {
    if (binaryMsgHandler instanceof WrappedMessageHandler) {
        long maxMessageSize =
                ((WrappedMessageHandler) binaryMsgHandler).getMaxMessageSize();
        if (maxMessageSize > -1 && msg.remaining() > maxMessageSize) {
            throw new WsIOException(new CloseReason(CloseCodes.TOO_BIG,
                    sm.getString("wsFrame.messageTooBig",
                            Long.valueOf(msg.remaining()),
                            Long.valueOf(maxMessageSize))));
        }
    }
    try {
        if (binaryMsgHandler instanceof MessageHandler.Partial<?>) {
            ((MessageHandler.Partial<ByteBuffer>) binaryMsgHandler).onMessage(msg, last);
        } else {
            // Caller ensures last == true if this branch is used
            ((MessageHandler.Whole<ByteBuffer>) binaryMsgHandler).onMessage(msg);
        }
    } catch(Throwable t) {
        handleThrowableOnSend(t);
    }
}
项目:tomcat7    文件:PojoEndpointBase.java   
@Override
public final void onClose(Session session, CloseReason closeReason) {

    if (methodMapping.getOnClose() != null) {
        try {
            methodMapping.getOnClose().invoke(pojo,
                    methodMapping.getOnCloseArgs(pathParameters, session, closeReason));
        } catch (Throwable t) {
            ExceptionUtils.handleThrowable(t);
            log.error(sm.getString("pojoEndpointBase.onCloseFail",
                    pojo.getClass().getName()), t);
        }
    }

    // Trigger the destroy method for any associated decoders
    Set<MessageHandler> messageHandlers = session.getMessageHandlers();
    for (MessageHandler messageHandler : messageHandlers) {
        if (messageHandler instanceof PojoMessageHandlerWholeBase<?>) {
            ((PojoMessageHandlerWholeBase<?>) messageHandler).onClose();
        }
    }
}
项目:lams    文件:WebsocketClient.java   
public WebsocketClient(String uri, final String sessionID, MessageHandler.Whole<String> messageHandler)
    throws IOException {

// add session ID so the request gets through LAMS security
Builder configBuilder = ClientEndpointConfig.Builder.create();
configBuilder.configurator(new Configurator() {
    @Override
    public void beforeRequest(Map<String, List<String>> headers) {
    headers.put("Cookie", Arrays.asList("JSESSIONID=" + sessionID));
    }
});
ClientEndpointConfig clientConfig = configBuilder.build();
this.websocketEndpoint = new WebsocketEndpoint(messageHandler);
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
try {
    container.connectToServer(websocketEndpoint, clientConfig, new URI(uri));
} catch (DeploymentException | URISyntaxException e) {
    throw new IOException("Error while connecting to websocket server", e);
}
   }
项目:apache-tomcat-7.0.73-with-comment    文件:WsFrameBase.java   
@SuppressWarnings("unchecked")
private void sendMessageBinary(ByteBuffer msg, boolean last)
        throws WsIOException {
    if (binaryMsgHandler instanceof WrappedMessageHandler) {
        long maxMessageSize =
                ((WrappedMessageHandler) binaryMsgHandler).getMaxMessageSize();
        if (maxMessageSize > -1 && msg.remaining() > maxMessageSize) {
            throw new WsIOException(new CloseReason(CloseCodes.TOO_BIG,
                    sm.getString("wsFrame.messageTooBig",
                            Long.valueOf(msg.remaining()),
                            Long.valueOf(maxMessageSize))));
        }
    }
    try {
        if (binaryMsgHandler instanceof MessageHandler.Partial<?>) {
            ((MessageHandler.Partial<ByteBuffer>) binaryMsgHandler).onMessage(msg, last);
        } else {
            // Caller ensures last == true if this branch is used
            ((MessageHandler.Whole<ByteBuffer>) binaryMsgHandler).onMessage(msg);
        }
    } catch(Throwable t) {
        handleThrowableOnSend(t);
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:PojoEndpointBase.java   
@Override
public final void onClose(Session session, CloseReason closeReason) {

    if (methodMapping.getOnClose() != null) {
        try {
            methodMapping.getOnClose().invoke(pojo,
                    methodMapping.getOnCloseArgs(pathParameters, session, closeReason));
        } catch (Throwable t) {
            ExceptionUtils.handleThrowable(t);
            log.error(sm.getString("pojoEndpointBase.onCloseFail",
                    pojo.getClass().getName()), t);
        }
    }

    // Trigger the destroy method for any associated decoders
    Set<MessageHandler> messageHandlers = session.getMessageHandlers();
    for (MessageHandler messageHandler : messageHandlers) {
        if (messageHandler instanceof PojoMessageHandlerWholeBase<?>) {
            ((PojoMessageHandlerWholeBase<?>) messageHandler).onClose();
        }
    }
}
项目:lazycat    文件:WsFrameBase.java   
@SuppressWarnings("unchecked")
private void sendMessageText(boolean last) throws WsIOException {
    if (textMsgHandler instanceof WrappedMessageHandler) {
        long maxMessageSize = ((WrappedMessageHandler) textMsgHandler).getMaxMessageSize();
        if (maxMessageSize > -1 && messageBufferText.remaining() > maxMessageSize) {
            throw new WsIOException(new CloseReason(CloseCodes.TOO_BIG, sm.getString("wsFrame.messageTooBig",
                    Long.valueOf(messageBufferText.remaining()), Long.valueOf(maxMessageSize))));
        }
    }

    try {
        if (textMsgHandler instanceof MessageHandler.Partial<?>) {
            ((MessageHandler.Partial<String>) textMsgHandler).onMessage(messageBufferText.toString(), last);
        } else {
            // Caller ensures last == true if this branch is used
            ((MessageHandler.Whole<String>) textMsgHandler).onMessage(messageBufferText.toString());
        }
    } catch (Throwable t) {
        handleThrowableOnSend(t);
    } finally {
        messageBufferText.clear();
    }
}
项目:lazycat    文件:WsFrameBase.java   
@SuppressWarnings("unchecked")
private void sendMessageBinary(ByteBuffer msg, boolean last) throws WsIOException {
    if (binaryMsgHandler instanceof WrappedMessageHandler) {
        long maxMessageSize = ((WrappedMessageHandler) binaryMsgHandler).getMaxMessageSize();
        if (maxMessageSize > -1 && msg.remaining() > maxMessageSize) {
            throw new WsIOException(new CloseReason(CloseCodes.TOO_BIG, sm.getString("wsFrame.messageTooBig",
                    Long.valueOf(msg.remaining()), Long.valueOf(maxMessageSize))));
        }
    }
    try {
        if (binaryMsgHandler instanceof MessageHandler.Partial<?>) {
            ((MessageHandler.Partial<ByteBuffer>) binaryMsgHandler).onMessage(msg, last);
        } else {
            // Caller ensures last == true if this branch is used
            ((MessageHandler.Whole<ByteBuffer>) binaryMsgHandler).onMessage(msg);
        }
    } catch (Throwable t) {
        handleThrowableOnSend(t);
    }
}
项目:lazycat    文件:PojoEndpointBase.java   
@Override
public final void onClose(Session session, CloseReason closeReason) {

    if (methodMapping.getOnClose() != null) {
        try {
            methodMapping.getOnClose().invoke(pojo,
                    methodMapping.getOnCloseArgs(pathParameters, session, closeReason));
        } catch (Throwable t) {
            ExceptionUtils.handleThrowable(t);
            log.error(sm.getString("pojoEndpointBase.onCloseFail", pojo.getClass().getName()), t);
        }
    }

    // Trigger the destroy method for any associated decoders
    Set<MessageHandler> messageHandlers = session.getMessageHandlers();
    for (MessageHandler messageHandler : messageHandlers) {
        if (messageHandler instanceof PojoMessageHandlerWholeBase<?>) {
            ((PojoMessageHandlerWholeBase<?>) messageHandler).onClose();
        }
    }
}
项目:zhq    文件:WebSocketServer.java   
public void onOpen(final Session session, EndpointConfig endpointConfig) {
    session.getAsyncRemote().sendText(
            "Client Success!Your id is: " + session.getId());
    session.addMessageHandler(new MessageHandler.Whole<String>() {
        @Override
        public void onMessage(String message) {
            session.getAsyncRemote().sendObject(message, new SendHandler() {
                @Override
                public void onResult(SendResult result) {
                    System.out.println(session.getId() + ":"
                            + result.isOK());
                }
            });
        }
    });
}
项目:TRIPfx    文件:DataMessageEndpoint.java   
@Override
public void onOpen(Session sn, EndpointConfig ec) {
  System.out.println("In DataMessageEndpoint#onOpen");
  this.session = sn;

  //TODO: Investgate why lambda version of the following didn't work:
  this.session.addMessageHandler(new MessageHandler.Whole<String>() {
    public void onMessage(String jsonReading) {
      try {
        ObjectMapper mapper = new ObjectMapper();
        Reading reading = mapper.readValue(jsonReading, Reading.class);
        System.out.println("New reading: " + reading.toString());
        Platform.runLater(() -> readingConsumer.setReading(reading));

      }
      catch (Exception e) {
        System.out.println("Exception: " + e.getLocalizedMessage());
      }
    }
  });
}
项目:gameon-room    文件:RoomWS.java   
private void debugDumpSessionInfo() {
    if (srrp.getSessions().size() == 0) {
        Log.log(Level.FINE,this, " No sessions known.");
    }
    for (Session s : srrp.getSessions()) {
        Log.log(Level.FINE,this, " Session: " + s.getId());
        Log.log(Level.FINE,this, "   handlers: " + s.getMessageHandlers().size());
        int mhc = 0;
        for (MessageHandler m : s.getMessageHandlers()) {
            if (m instanceof SessionMessageHandler) {
                SessionMessageHandler smh = (SessionMessageHandler) m;
                Log.log(Level.FINE,this, "    [" + mhc + "] SessionMessageHandler for session " + smh.session.getId()
                        + " linked to room " + smh.owner.room.getRoomId());
            } else {
                Log.log(Level.FINE,this, "    [" + mhc + "] unknown handler");
            }
            mhc++;
        }
    }
}
项目:gameboot    文件:WebSocketEndpoint.java   
@Override
public void onOpen(Session session, EndpointConfig config) {
  log.debug("Session {} open on channel", session.getId());

  session.addMessageHandler(new MessageHandler.Whole<byte[]>() {

    @Override
    public void onMessage(byte[] message) {
      try {
        WebSocketEndpoint.this.onMessage(message, session);
      } catch (Exception e) {
        log.error("Unexpected exception", e);
      }
    }
  });
}
项目:spark-ws    文件:SparkWSTest.java   
private void assertMessageReceived( String endpoint, String expectedMessage, String messageToSend ) throws Exception {
    final SettableFuture<String> futureMessage = SettableFuture.create();

    client.connectToServer( new Endpoint() {

        @Override
        public void onOpen( Session session, EndpointConfig config ) {
            clientSession = session;
            try {
                session.addMessageHandler( new MessageHandler.Whole<String>() {

                    @Override
                    public void onMessage( String message ) {
                        System.out.println( "Received message: " + message );
                        futureMessage.set( message );
                    }
                } );
                session.getBasicRemote().sendText( messageToSend );
            } catch ( IOException e ) {
                e.printStackTrace();
            }
        }
    }, cec, new URI( "ws://localhost:8025/" + endpoint ) );

    assertEquals( expectedMessage, futureMessage.get( 2, TimeUnit.SECONDS ) );
}
项目:class-guard    文件:WsFrameBase.java   
@SuppressWarnings("unchecked")
private void sendMessageBinary(ByteBuffer msg, boolean last)
        throws WsIOException {
    if (binaryMsgHandler instanceof WrappedMessageHandler) {
        long maxMessageSize =
                ((WrappedMessageHandler) binaryMsgHandler).getMaxMessageSize();
        if (maxMessageSize > -1 && msg.remaining() > maxMessageSize) {
            throw new WsIOException(new CloseReason(CloseCodes.TOO_BIG,
                    sm.getString("wsFrame.messageTooBig",
                            Long.valueOf(msg.remaining()),
                            Long.valueOf(maxMessageSize))));
        }
    }
    try {
        if (binaryMsgHandler instanceof MessageHandler.Partial<?>) {
            ((MessageHandler.Partial<ByteBuffer>) binaryMsgHandler).onMessage(msg, last);
        } else {
            // Caller ensures last == true if this branch is used
            ((MessageHandler.Whole<ByteBuffer>) binaryMsgHandler).onMessage(msg);
        }
    } catch(Throwable t) {
        handleThrowableOnSend(t);
    }
}
项目:class-guard    文件:PojoEndpointBase.java   
@Override
public final void onClose(Session session, CloseReason closeReason) {

    if (methodMapping.getOnClose() != null) {
        try {
            methodMapping.getOnClose().invoke(pojo,
                    methodMapping.getOnCloseArgs(pathParameters, session, closeReason));
        } catch (Throwable t) {
            ExceptionUtils.handleThrowable(t);
            log.error(sm.getString("pojoEndpointBase.onCloseFail",
                    pojo.getClass().getName()), t);
        }
    }

    // Trigger the destroy method for any associated decoders
    Set<MessageHandler> messageHandlers = session.getMessageHandlers();
    for (MessageHandler messageHandler : messageHandlers) {
        if (messageHandler instanceof PojoMessageHandlerWholeBase<?>) {
            ((PojoMessageHandlerWholeBase<?>) messageHandler).onClose();
        }
    }
}
项目:JavaIncrementalParser    文件:MyClient.java   
@Override
public void onOpen(final Session session, EndpointConfig ec) {
    session.addMessageHandler(new MessageHandler.Whole<String>() {

        @Override
        public void onMessage(String text) {
            System.out.println("Received response in client from endpoint: " + text);
        }
    });
    System.out.println("Connected to endpoint: " + session.getBasicRemote());
    try {
        String name = "Duke";
        System.out.println("Sending message from client -> endpoint: " + name);
        session.getBasicRemote().sendText(name);
    } catch (IOException ex) {
        Logger.getLogger(MyClient.class.getName()).log(Level.SEVERE, null, ex);
    }
}
项目:JavaIncrementalParser    文件:MyClient.java   
@Override
public void onOpen(final Session session, EndpointConfig ec) {
    session.addMessageHandler(new MessageHandler.Whole<String>() {

        @Override
        public void onMessage(String text) {
            System.out.println("Received response in client from endpoint: " + text);
        }
    });
    System.out.println("Connected to endpoint: " + session.getBasicRemote());
    try {
        String name = "Duke";
        System.out.println("Sending message from client -> endpoint: " + name);
        session.getBasicRemote().sendText(name);
    } catch (IOException ex) {
        Logger.getLogger(MyClient.class.getName()).log(Level.SEVERE, null, ex);
    }
}
项目:JavaIncrementalParser    文件:MyEndpointHandler.java   
@Override
public void onOpen(final Session session, EndpointConfig ec) {
    session.addMessageHandler(new MessageHandler.Whole<String>() {

        @Override
        public void onMessage(String data) {
            System.out.println("Received (MyEndpointHandler) : " + data);

            session.getAsyncRemote().sendText(data, new SendHandler() {

                @Override
                public void onResult(SendResult sr) {
                    if (sr.isOK()) {
                        System.out.println("Message written to the socket (handler)");
                    } else {
                        System.out.println("Message NOT written to the socket (handler)");
                        sr.getException().printStackTrace();
                    }

                }
            });
        }
    });
}
项目:apache-tomcat-7.0.57    文件:WsFrameBase.java   
@SuppressWarnings("unchecked")
private void sendMessageBinary(ByteBuffer msg, boolean last)
        throws WsIOException {
    if (binaryMsgHandler instanceof WrappedMessageHandler) {
        long maxMessageSize =
                ((WrappedMessageHandler) binaryMsgHandler).getMaxMessageSize();
        if (maxMessageSize > -1 && msg.remaining() > maxMessageSize) {
            throw new WsIOException(new CloseReason(CloseCodes.TOO_BIG,
                    sm.getString("wsFrame.messageTooBig",
                            Long.valueOf(msg.remaining()),
                            Long.valueOf(maxMessageSize))));
        }
    }
    try {
        if (binaryMsgHandler instanceof MessageHandler.Partial<?>) {
            ((MessageHandler.Partial<ByteBuffer>) binaryMsgHandler).onMessage(msg, last);
        } else {
            // Caller ensures last == true if this branch is used
            ((MessageHandler.Whole<ByteBuffer>) binaryMsgHandler).onMessage(msg);
        }
    } catch(Throwable t) {
        handleThrowableOnSend(t);
    }
}
项目:apache-tomcat-7.0.57    文件:PojoEndpointBase.java   
@Override
public final void onClose(Session session, CloseReason closeReason) {

    if (methodMapping.getOnClose() != null) {
        try {
            methodMapping.getOnClose().invoke(pojo,
                    methodMapping.getOnCloseArgs(pathParameters, session, closeReason));
        } catch (Throwable t) {
            ExceptionUtils.handleThrowable(t);
            log.error(sm.getString("pojoEndpointBase.onCloseFail",
                    pojo.getClass().getName()), t);
        }
    }

    // Trigger the destroy method for any associated decoders
    Set<MessageHandler> messageHandlers = session.getMessageHandlers();
    for (MessageHandler messageHandler : messageHandlers) {
        if (messageHandler instanceof PojoMessageHandlerWholeBase<?>) {
            ((PojoMessageHandlerWholeBase<?>) messageHandler).onClose();
        }
    }
}
项目:apache-tomcat-7.0.57    文件:WsFrameBase.java   
@SuppressWarnings("unchecked")
private void sendMessageBinary(ByteBuffer msg, boolean last)
        throws WsIOException {
    if (binaryMsgHandler instanceof WrappedMessageHandler) {
        long maxMessageSize =
                ((WrappedMessageHandler) binaryMsgHandler).getMaxMessageSize();
        if (maxMessageSize > -1 && msg.remaining() > maxMessageSize) {
            throw new WsIOException(new CloseReason(CloseCodes.TOO_BIG,
                    sm.getString("wsFrame.messageTooBig",
                            Long.valueOf(msg.remaining()),
                            Long.valueOf(maxMessageSize))));
        }
    }
    try {
        if (binaryMsgHandler instanceof MessageHandler.Partial<?>) {
            ((MessageHandler.Partial<ByteBuffer>) binaryMsgHandler).onMessage(msg, last);
        } else {
            // Caller ensures last == true if this branch is used
            ((MessageHandler.Whole<ByteBuffer>) binaryMsgHandler).onMessage(msg);
        }
    } catch(Throwable t) {
        handleThrowableOnSend(t);
    }
}
项目:apache-tomcat-7.0.57    文件:PojoEndpointBase.java   
@Override
public final void onClose(Session session, CloseReason closeReason) {

    if (methodMapping.getOnClose() != null) {
        try {
            methodMapping.getOnClose().invoke(pojo,
                    methodMapping.getOnCloseArgs(pathParameters, session, closeReason));
        } catch (Throwable t) {
            ExceptionUtils.handleThrowable(t);
            log.error(sm.getString("pojoEndpointBase.onCloseFail",
                    pojo.getClass().getName()), t);
        }
    }

    // Trigger the destroy method for any associated decoders
    Set<MessageHandler> messageHandlers = session.getMessageHandlers();
    for (MessageHandler messageHandler : messageHandlers) {
        if (messageHandler instanceof PojoMessageHandlerWholeBase<?>) {
            ((PojoMessageHandlerWholeBase<?>) messageHandler).onClose();
        }
    }
}
项目:websocket-message-handlers-example    文件:FullEchoEndpoint.java   
@Override
public void onOpen(Session session, EndpointConfig config) {
    final String sessionId = session.getId();
    log.info("established session with id: "+sessionId);

    //add text based message handler
    session.addMessageHandler(new MessageHandler.Whole<String>() {

        @Override
        public void onMessage(String msg) {
            log.info(sessionId+": text message: "+msg);
        }
    });

    //add binary based message handler
    session.addMessageHandler(new MessageHandler.Whole<ByteBuffer>() {

        @Override
        public void onMessage(ByteBuffer buffer) {
            log.info(sessionId+": binary message: "+new String(buffer.array()));
        }
    });
}
项目:pentaho-kettle    文件:DaemonMessagesClientEndpoint.java   
/**
 * Callback hook for Connection open events.
 *
 * @param userSession the userSession which is opened.
 */
@Override
public void onOpen( Session userSession, EndpointConfig endpointConfig ) {
  this.userSession = userSession;
  this.userSession.setMaxTextMessageBufferSize( MAX_TXT_MSG_BUF_SIZE );
  this.userSession.setMaxBinaryMessageBufferSize( MAX_BIN_MSG_BUF_SIZE );

  userSession.addMessageHandler( new MessageHandler.Whole<Message>() {
    /**
     * Callback hook for Message Events. This method will be invoked when the server send a message.
     *
     * @param message The text message
     */
    @Override
    public void onMessage( Message message ) {
      try {
        messageEventService.fireEvent( message );
      } catch ( MessageEventFireEventException e ) {
        throw new RuntimeException( e );
      }
    }
  } );
}
项目:websocket    文件:java7Ws.java   
@Override
public void onOpen(Session session, EndpointConfig arg1) {
    final RemoteEndpoint.Basic remote = session.getBasicRemote();
    session.addMessageHandler(new MessageHandler.Whole<String>() {
        public void onMessage(String text) {
            try {
                remote.sendText(text.toUpperCase());
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
        }
    });
}
项目:tomcat7    文件:WsSession.java   
@Override
public Set<MessageHandler> getMessageHandlers() {
    checkState();
    Set<MessageHandler> result = new HashSet<MessageHandler>();
    if (binaryMessageHandler != null) {
        result.add(binaryMessageHandler);
    }
    if (textMessageHandler != null) {
        result.add(textMessageHandler);
    }
    if (pongMessageHandler != null) {
        result.add(pongMessageHandler);
    }
    return result;
}
项目:tomcat7    文件:WsFrameBase.java   
@SuppressWarnings("unchecked")
private void sendMessageText(boolean last) throws WsIOException {
    if (textMsgHandler instanceof WrappedMessageHandler) {
        long maxMessageSize =
                ((WrappedMessageHandler) textMsgHandler).getMaxMessageSize();
        if (maxMessageSize > -1 &&
                messageBufferText.remaining() > maxMessageSize) {
            throw new WsIOException(new CloseReason(CloseCodes.TOO_BIG,
                    sm.getString("wsFrame.messageTooBig",
                            Long.valueOf(messageBufferText.remaining()),
                            Long.valueOf(maxMessageSize))));
        }
    }

    try {
        if (textMsgHandler instanceof MessageHandler.Partial<?>) {
            ((MessageHandler.Partial<String>) textMsgHandler).onMessage(
                    messageBufferText.toString(), last);
        } else {
            // Caller ensures last == true if this branch is used
            ((MessageHandler.Whole<String>) textMsgHandler).onMessage(
                    messageBufferText.toString());
        }
    } catch (Throwable t) {
        handleThrowableOnSend(t);
    } finally {
        messageBufferText.clear();
    }
}
项目:tomcat7    文件:WsFrameBase.java   
private boolean usePartial() {
    if (Util.isControl(opCode)) {
        return false;
    } else if (textMessage) {
        return textMsgHandler instanceof MessageHandler.Partial<?>;
    } else {
        // Must be binary
        return binaryMsgHandler instanceof MessageHandler.Partial<?>;
    }
}
项目:tomcat7    文件:PojoMessageHandlerBase.java   
/**
 * Expose the POJO if it is a message handler so the Session is able to
 * match requests to remove handlers if the original handler has been
 * wrapped.
 */
@Override
public final MessageHandler getWrappedHandler() {
    if (pojo instanceof MessageHandler) {
        return (MessageHandler) pojo;
    } else {
        return null;
    }
}
项目:tomcat7    文件:PojoMethodMapping.java   
public Set<MessageHandler> getMessageHandlers(Object pojo,
        Map<String,String> pathParameters, Session session,
        EndpointConfig config) {
    Set<MessageHandler> result = new HashSet<MessageHandler>();
    for (MessageHandlerInfo messageMethod : onMessage) {
        result.addAll(messageMethod.getMessageHandlers(pojo, pathParameters,
                session, config));
    }
    return result;
}
项目:qonduit    文件:ClientHandler.java   
@Override
public void onOpen(Session session, EndpointConfig config) {
    LOG.info("Websocket session {} opened.", session.getId());
    session.addMessageHandler(new MessageHandler.Whole<byte[]>() {

        @Override
        public void onMessage(byte[] message) {
            LOG.info("Message received on Websocket session {}: {}", session.getId(), message);
        }
    });
}
项目:apache-tomcat-7.0.73-with-comment    文件:WsSession.java   
@Override
public Set<MessageHandler> getMessageHandlers() {
    checkState();
    Set<MessageHandler> result = new HashSet<MessageHandler>();
    if (binaryMessageHandler != null) {
        result.add(binaryMessageHandler);
    }
    if (textMessageHandler != null) {
        result.add(textMessageHandler);
    }
    if (pongMessageHandler != null) {
        result.add(pongMessageHandler);
    }
    return result;
}
项目:apache-tomcat-7.0.73-with-comment    文件:WsFrameBase.java   
@SuppressWarnings("unchecked")
private void sendMessageText(boolean last) throws WsIOException {
    if (textMsgHandler instanceof WrappedMessageHandler) {
        long maxMessageSize =
                ((WrappedMessageHandler) textMsgHandler).getMaxMessageSize();
        if (maxMessageSize > -1 &&
                messageBufferText.remaining() > maxMessageSize) {
            throw new WsIOException(new CloseReason(CloseCodes.TOO_BIG,
                    sm.getString("wsFrame.messageTooBig",
                            Long.valueOf(messageBufferText.remaining()),
                            Long.valueOf(maxMessageSize))));
        }
    }

    try {
        if (textMsgHandler instanceof MessageHandler.Partial<?>) {
            ((MessageHandler.Partial<String>) textMsgHandler).onMessage(
                    messageBufferText.toString(), last);
        } else {
            // Caller ensures last == true if this branch is used
            ((MessageHandler.Whole<String>) textMsgHandler).onMessage(
                    messageBufferText.toString());
        }
    } catch (Throwable t) {
        handleThrowableOnSend(t);
    } finally {
        messageBufferText.clear();
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:WsFrameBase.java   
private boolean usePartial() {
    if (Util.isControl(opCode)) {
        return false;
    } else if (textMessage) {
        return textMsgHandler instanceof MessageHandler.Partial<?>;
    } else {
        // Must be binary
        return binaryMsgHandler instanceof MessageHandler.Partial<?>;
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:PojoMessageHandlerBase.java   
/**
 * Expose the POJO if it is a message handler so the Session is able to
 * match requests to remove handlers if the original handler has been
 * wrapped.
 */
@Override
public final MessageHandler getWrappedHandler() {
    if (pojo instanceof MessageHandler) {
        return (MessageHandler) pojo;
    } else {
        return null;
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:PojoMethodMapping.java   
public Set<MessageHandler> getMessageHandlers(Object pojo,
        Map<String,String> pathParameters, Session session,
        EndpointConfig config) {
    Set<MessageHandler> result = new HashSet<MessageHandler>();
    for (MessageHandlerInfo messageMethod : onMessage) {
        result.addAll(messageMethod.getMessageHandlers(pojo, pathParameters,
                session, config));
    }
    return result;
}
项目:redis-websocket-javaee    文件:MeetupRSVPsWebSocketClient.java   
@Override
    public void onOpen(Session session, EndpointConfig config) {
        System.out.println("Server session established");
        //conn to redis
        jedis = new Jedis("192.168.99.100", 6379, 10000);
        session.addMessageHandler(new MessageHandler.Whole<MeetupRSVP>() {
            @Override
            public void onMessage(MeetupRSVP message) {
                List<GroupTopic> groupTopics = message.getGroup().getGroupTopics();
                for (GroupTopic groupTopic : groupTopics) {
                    try {

                        if(GROUPS_IN_REDIS.contains(groupTopic.getTopicName())){
                            jedis.zincrby(LEADERBOARD_REDIS_KEY, 1, groupTopic.getTopicName());
                        }else{
                            //zscore = jedis.zscore(LEADERBOARD_REDIS_KEY, groupTopic.getTopicName());
                            jedis.zadd(LEADERBOARD_REDIS_KEY, 1, groupTopic.getTopicName());
                            GROUPS_IN_REDIS.add(groupTopic.getTopicName());
                        }

//                        Double zscore = jedis.zscore(LEADERBOARD_REDIS_KEY, groupTopic.getTopicName());;
//                        if(zscore == null){
//                            jedis.zadd(LEADERBOARD_REDIS_KEY, 1, groupTopic.getTopicName());
//                        }else{
//                            jedis.zincrby(LEADERBOARD_REDIS_KEY, 1, groupTopic.getTopicName());
//                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

                }
            }
        });

    }
项目:lazycat    文件:WsSession.java   
@Override
public Set<MessageHandler> getMessageHandlers() {
    checkState();
    Set<MessageHandler> result = new HashSet<MessageHandler>();
    if (binaryMessageHandler != null) {
        result.add(binaryMessageHandler);
    }
    if (textMessageHandler != null) {
        result.add(textMessageHandler);
    }
    if (pongMessageHandler != null) {
        result.add(pongMessageHandler);
    }
    return result;
}
项目:lazycat    文件:WsSession.java   
@Override
public void removeMessageHandler(MessageHandler listener) {
    checkState();
    if (listener == null) {
        return;
    }

    MessageHandler wrapped = null;

    if (listener instanceof WrappedMessageHandler) {
        wrapped = ((WrappedMessageHandler) listener).getWrappedHandler();
    }

    if (wrapped == null) {
        wrapped = listener;
    }

    boolean removed = false;
    if (wrapped.equals(textMessageHandler) || listener.equals(textMessageHandler)) {
        textMessageHandler = null;
        removed = true;
    }

    if (wrapped.equals(binaryMessageHandler) || listener.equals(binaryMessageHandler)) {
        binaryMessageHandler = null;
        removed = true;
    }

    if (wrapped.equals(pongMessageHandler) || listener.equals(pongMessageHandler)) {
        pongMessageHandler = null;
        removed = true;
    }

    if (!removed) {
        // ISE for now. Could swallow this silently / log this if the ISE
        // becomes a problem
        throw new IllegalStateException(sm.getString("wsSession.removeHandlerFailed", listener));
    }
}
项目:lazycat    文件:WsFrameBase.java   
private boolean usePartial() {
    if (Util.isControl(opCode)) {
        return false;
    } else if (textMessage) {
        return textMsgHandler instanceof MessageHandler.Partial<?>;
    } else {
        // Must be binary
        return binaryMsgHandler instanceof MessageHandler.Partial<?>;
    }
}