Example usage for io.netty.handler.codec.http.websocketx WebSocketFrame content

List of usage examples for io.netty.handler.codec.http.websocketx WebSocketFrame content

Introduction

In this page you can find the example usage for io.netty.handler.codec.http.websocketx WebSocketFrame content.

Prototype

@Override
    public ByteBuf content() 

Source Link

Usage

From source file:app.WebSocketServerHandler.java

License:Apache License

private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) {

    // Check for closing frame
    if (frame instanceof CloseWebSocketFrame) {
        channels.remove(ctx.channel());//from w w  w  . j a  v a 2 s .c om
        handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
        return;
    }
    if (frame instanceof PingWebSocketFrame) {
        ctx.write(new PongWebSocketFrame(frame.content().retain()));
        return;
    }
    if (frame instanceof TextWebSocketFrame) {
        JSONObject msg = (JSONObject) JSONValue.parse(((TextWebSocketFrame) frame).text());

        if (msg == null) {
            System.out.println("Unknown message type");
            return;
        }

        switch (msg.get("type").toString()) {
        case "broadcast":
            final TextWebSocketFrame outbound = new TextWebSocketFrame(msg.toJSONString());
            channels.forEach(gc -> gc.writeAndFlush(outbound.duplicate().retain()));
            msg.replace("type", "broadcastResult");
            ctx.writeAndFlush(new TextWebSocketFrame(msg.toJSONString()));
            break;
        case "echo":
            ctx.writeAndFlush(new TextWebSocketFrame(msg.toJSONString()));
            break;
        default:
            System.out.println("Unknown message type");
        }

        return;
    }
}

From source file:books.netty.protocol.websocket.server.WebSocketServerHandler.java

License:Apache License

private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) {

    // ?/*ww w . j  a  v a 2  s. c o m*/
    if (frame instanceof CloseWebSocketFrame) {
        handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
        return;
    }
    // ?Ping?
    if (frame instanceof PingWebSocketFrame) {
        ctx.channel().write(new PongWebSocketFrame(frame.content().retain()));
        return;
    }
    // ?????
    if (!(frame instanceof TextWebSocketFrame)) {
        throw new UnsupportedOperationException(
                String.format("%s frame types not supported", frame.getClass().getName()));
    }

    // ?
    String request = ((TextWebSocketFrame) frame).text();
    if (logger.isLoggable(Level.FINE)) {
        logger.fine(String.format("%s received %s", ctx.channel(), request));
    }
    ctx.channel().write(new TextWebSocketFrame(request
            + " , Netty WebSocket?" + new java.util.Date().toString()));
}

From source file:c5db.client.codec.WebsocketProtostuffDecoder.java

License:Apache License

@Override
protected void decode(ChannelHandlerContext ctx, WebSocketFrame frame, List<Object> out) throws Exception {
    if (frame instanceof BinaryWebSocketFrame) {
        final ByteBufferInput input = new ByteBufferInput(frame.content().nioBuffer(), false);
        final Response newMsg = Response.getSchema().newMessage();
        Response.getSchema().mergeFrom(input, newMsg);
        out.add(newMsg);//from   w  w w  .  j a v  a  2s .c o  m
    } else {
        super.decode(ctx, frame, out);
    }
}

From source file:c5db.codec.WebsocketProtostuffDecoder.java

License:Apache License

@Override
protected void decode(ChannelHandlerContext ctx, WebSocketFrame frame, List<Object> out) throws Exception {
    if (frame instanceof BinaryWebSocketFrame) {
        final ByteBufferInput input = new ByteBufferInput(frame.content().nioBuffer(), false);
        final Call newMsg = Call.getSchema().newMessage();
        Call.getSchema().mergeFrom(input, newMsg);
        out.add(newMsg);//from  www .  j a  va2 s.  c  om
    } else {
        super.decode(ctx, frame, out);
    }
}

From source file:ca.lambtoncollege.netty.webSocket.ServerHandlerWebSocket.java

private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) {

    // Check for closing frame
    if (frame instanceof CloseWebSocketFrame) {
        handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
        return;/*from ww w .  j a va 2  s .c o m*/
    }
    if (frame instanceof PingWebSocketFrame) {
        ctx.channel().write(new PongWebSocketFrame(frame.content().retain()));
        return;
    }
    if (!(frame instanceof TextWebSocketFrame)) {
        throw new UnsupportedOperationException(
                String.format("%s frame types not supported", frame.getClass().getName()));
    }

    // Send the uppercase string back.
    String request = ((TextWebSocketFrame) frame).text();
    System.err.printf("%s received %s%n", ctx.channel(), request);
    ctx.channel().write(new TextWebSocketFrame(request.toUpperCase()));
}

From source file:cn.npt.net.websocket.WebSocketServerHandler.java

License:Apache License

private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) {

    // Check for closing frame
    if (frame instanceof CloseWebSocketFrame) {
        handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
        return;//from w  w  w  .  j  av  a2  s.c om
    }
    if (frame instanceof PingWebSocketFrame) {
        ctx.channel().write(new PongWebSocketFrame(frame.content().retain()));
        return;
    }
    if (!(frame instanceof TextWebSocketFrame)) {
        throw new UnsupportedOperationException(
                String.format("%s frame types not supported", frame.getClass().getName()));
    }

    //??{cmd:getSensorValue,depth:0,timeInterval:1000,sensorIds:[...]},?????
    String request = ((TextWebSocketFrame) frame).text();
    JSONObject reqObj = JSON.parseObject(request);
    if (reqObj.containsKey("cmd")) {
        String cmd = reqObj.getString("cmd");
        switch (cmd) {
        case "getStartTime":
            getStartTime(ctx);
            break;
        case "getSensorCount":
            getSensorCount(ctx);
            break;
        case "getSensorValue"://?
            getSensorValue(reqObj, ctx);
            break;
        case "updateSensorValue"://?
            updateSensorValue(reqObj, ctx);
            break;
        case "getCachePoolDepth":
            getCachePoolDepth(reqObj, ctx);
            break;
        case "getSensorHandlers":
            getSensorHandlers(reqObj, ctx);
            break;
        default:
            ctx.writeAndFlush(new TextWebSocketFrame(""));
            break;
        }
    } else {
        log.warn("unknown command");
        ctx.writeAndFlush(new TextWebSocketFrame("?"));
    }

    //ctx.executor().scheduleAtFixedRate(paramRunnable, paramLong1, paramLong2, paramTimeUnit)

}

From source file:co.paralleluniverse.comsat.webactors.netty.WebActorHandler.java

License:Open Source License

private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) {
    // Check for closing frame
    if (frame instanceof CloseWebSocketFrame) {
        handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
        return;/*w  w w . j  a v a2 s  . c  om*/
    }

    if (frame instanceof PingWebSocketFrame) {
        ctx.channel().writeAndFlush(new PongWebSocketFrame(frame.content().retain()));
        return;
    }

    if (frame instanceof ContinuationWebSocketFrame)
        return;

    if (frame instanceof TextWebSocketFrame)
        webSocketActor.onMessage(((TextWebSocketFrame) frame).text());
    else
        webSocketActor.onMessage(frame.content().nioBuffer());
}

From source file:com.adobe.acs.livereload.impl.WebSocketServerHandler.java

License:Apache License

private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) {

    // Check for closing frame
    if (frame instanceof CloseWebSocketFrame) {
        handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
        return;/*from   w w  w . j  a v  a  2  s. co m*/
    }
    if (frame instanceof PingWebSocketFrame) {
        ctx.channel().write(new PongWebSocketFrame(frame.content().retain()));
        return;
    }
    if (!(frame instanceof TextWebSocketFrame)) {
        throw new UnsupportedOperationException(
                String.format("%s frame types not supported", frame.getClass().getName()));
    }

    String request = ((TextWebSocketFrame) frame).text();
    try {
        JSONObject obj = new JSONObject(request);
        handleCommand(obj, ctx);

    } catch (JSONException e) {
        throw new IllegalArgumentException(String.format("%s is not a valid JSON object", request));
    }

}

From source file:com.athena.dolly.websocket.server.test.WebSocketServerHandler.java

License:Apache License

private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) {

    // Check for closing frame
    if (frame instanceof CloseWebSocketFrame) {
        handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
        try {// ww w .  j a  v  a2 s . c  om
            fos.flush();
            fos.close();
            fos = null;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return;
    }
    if (frame instanceof PingWebSocketFrame) {
        ctx.channel().write(new PongWebSocketFrame(frame.content().retain()));
        return;
    }

    if (frame instanceof TextWebSocketFrame) {

        // Send the uppercase string back.
        String fileName = ((TextWebSocketFrame) frame).text();
        logger.debug(String.format("Received file name is [%s]", fileName));

        destFile = new File(fileName + ".received");
        try {
            fos = new FileOutputStream(destFile);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        ctx.channel().write(new TextWebSocketFrame(fileName.toUpperCase()));
    }

    if (frame instanceof BinaryWebSocketFrame) {
        byte[] buffer = null;
        ByteBuf rawMessage = ((BinaryWebSocketFrame) frame).content();

        //logger.debug(">>>> BinaryWebSocketFrame Found, " + rawMessage);
        // check if this ByteBuf is DIRECT (no backing byte[])
        if (rawMessage.hasArray() == false) {
            int size = rawMessage.readableBytes();
            buffer = new byte[size];
            rawMessage.readBytes(buffer);

            try {
                fos.write(buffer);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            buffer = rawMessage.array();
        }
        logger.debug(">>>> Read Byte Array: " + buffer.length);

        return;
    }
}

From source file:com.athena.dolly.websocket.server.test.WebSocketSslServerHandler.java

License:Apache License

private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) {

    // Check for closing frame
    if (frame instanceof CloseWebSocketFrame) {
        handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
        return;//from ww  w  . j  a v a  2  s. co  m
    }
    if (frame instanceof PingWebSocketFrame) {
        ctx.channel().write(new PongWebSocketFrame(frame.content().retain()));
        return;
    }
    if (!(frame instanceof TextWebSocketFrame)) {
        throw new UnsupportedOperationException(
                String.format("%s frame types not supported", frame.getClass().getName()));
    }

    // Send the uppercase string back.
    String request = ((TextWebSocketFrame) frame).text();
    if (logger.isLoggable(Level.FINE)) {
        logger.fine(String.format("%s received %s", ctx.channel(), request));
    }
    ctx.channel().write(new TextWebSocketFrame(request.toUpperCase()));
}