Search in sources :

Example 1 with TextPartialMessage

use of org.eclipse.jetty.websocket.jsr356.messages.TextPartialMessage in project jetty.project by eclipse.

the class JsrEndpointEventDriver method onTextFrame.

@Override
public void onTextFrame(ByteBuffer buffer, boolean fin) throws IOException {
    if (activeMessage == null) {
        final MessageHandlerWrapper wrapper = jsrsession.getMessageHandlerWrapper(MessageType.TEXT);
        if (wrapper == null) {
            if (LOG.isDebugEnabled()) {
                LOG.debug("No TEXT MessageHandler declared");
            }
            return;
        }
        if (wrapper.wantsPartialMessages()) {
            activeMessage = new TextPartialMessage(wrapper);
        } else if (wrapper.wantsStreams()) {
            final MessageReader stream = new MessageReader(new MessageInputStream());
            activeMessage = stream;
            dispatch(new Runnable() {

                @SuppressWarnings("unchecked")
                @Override
                public void run() {
                    MessageHandler.Whole<Reader> handler = (Whole<Reader>) wrapper.getHandler();
                    handler.onMessage(stream);
                }
            });
        } else {
            activeMessage = new TextWholeMessage(this, wrapper);
        }
    }
    activeMessage.appendFrame(buffer, fin);
    if (fin) {
        activeMessage.messageComplete();
        activeMessage = null;
    }
}
Also used : MessageHandlerWrapper(org.eclipse.jetty.websocket.jsr356.MessageHandlerWrapper) TextWholeMessage(org.eclipse.jetty.websocket.jsr356.messages.TextWholeMessage) TextPartialMessage(org.eclipse.jetty.websocket.jsr356.messages.TextPartialMessage) MessageInputStream(org.eclipse.jetty.websocket.common.message.MessageInputStream) MessageHandler(javax.websocket.MessageHandler) MessageReader(org.eclipse.jetty.websocket.common.message.MessageReader) Reader(java.io.Reader) MessageReader(org.eclipse.jetty.websocket.common.message.MessageReader) Whole(javax.websocket.MessageHandler.Whole)

Aggregations

Reader (java.io.Reader)1 MessageHandler (javax.websocket.MessageHandler)1 Whole (javax.websocket.MessageHandler.Whole)1 MessageInputStream (org.eclipse.jetty.websocket.common.message.MessageInputStream)1 MessageReader (org.eclipse.jetty.websocket.common.message.MessageReader)1 MessageHandlerWrapper (org.eclipse.jetty.websocket.jsr356.MessageHandlerWrapper)1 TextPartialMessage (org.eclipse.jetty.websocket.jsr356.messages.TextPartialMessage)1 TextWholeMessage (org.eclipse.jetty.websocket.jsr356.messages.TextWholeMessage)1