List of usage examples for io.netty.handler.codec.http.websocketx WebSocketFrame content
@Override
public ByteBuf content()
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())); }