java类io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame的实例源码

WebSocketBinaryFrameByteBufAdapter.java 文件源码 项目:util4j 阅读 22 收藏 0 点赞 0 评论 0
/**
 * 将webSocket消息转换为bytebuf类型,以适配后面的解码器
 */
@Override
protected void decode(ChannelHandlerContext paramChannelHandlerContext,
        WebSocketFrame paramINBOUND_IN, List<Object> paramList)
        throws Exception {
    if(paramINBOUND_IN instanceof BinaryWebSocketFrame)
    {
        BinaryWebSocketFrame msg=(BinaryWebSocketFrame)paramINBOUND_IN;
        ByteBuf data = msg.content();
        paramList.add(data);
        data.retain();
    }
}
WebSocketBinaryFrameByteBufAdapter.java 文件源码 项目:util4j 阅读 21 收藏 0 点赞 0 评论 0
/**
 * 对于业务层直接发送的bytebuf实例将其转换为websocket消息
 */
@Override
protected void encode(ChannelHandlerContext paramChannelHandlerContext,
        ByteBuf paramOUTBOUND_IN, List<Object> paramList) throws Exception {
    paramList.add(new BinaryWebSocketFrame(paramOUTBOUND_IN));
    paramOUTBOUND_IN.retain();
}
VersionOperation.java 文件源码 项目:qonduit 阅读 16 收藏 0 点赞 0 评论 0
@Override
public void run() {
    try {
        VersionResponse response = new VersionResponse();
        response.setRequestId(this.request.getRequestId());
        ctx.writeAndFlush(new BinaryWebSocketFrame(Unpooled.wrappedBuffer(om.writeValueAsBytes(response))));
    } catch (JsonProcessingException e) {
        LOG.error("Error serializing version response", e);
    }
}
WebSocketIT.java 文件源码 项目:qonduit 阅读 32 收藏 0 点赞 0 评论 0
@Override
protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception {
    LOG.info("Received msg: {}", msg);
    if (!this.handshaker.isHandshakeComplete()) {
        this.handshaker.finishHandshake(ctx.channel(), (FullHttpResponse) msg);
        LOG.info("Client connected.");
        this.connected = true;
        this.handshakeFuture.setSuccess();
        return;
    }
    if (msg instanceof FullHttpResponse) {
        throw new IllegalStateException("Unexpected response: " + msg.toString());
    }
    WebSocketFrame frame = (WebSocketFrame) msg;
    if (frame instanceof TextWebSocketFrame) {
        synchronized (responses) {
            responses.add(((TextWebSocketFrame) frame).text().getBytes(StandardCharsets.UTF_8));
        }
    } else if (frame instanceof BinaryWebSocketFrame) {
        ByteBuf buf = frame.content();
        byte[] b = new byte[buf.readableBytes()];
        buf.readBytes(b);
        synchronized (responses) {
            responses.add(b);
        }
    } else if (frame instanceof PingWebSocketFrame) {
        LOG.info("Returning pong message");
        ctx.writeAndFlush(new PongWebSocketFrame());
    } else if (frame instanceof CloseWebSocketFrame) {
        LOG.info("Received message from server to close the channel.");
        ctx.close();
    } else {
        LOG.warn("Unhandled frame type received: " + frame.getClass());
    }
}
WebSocketFrameHandler.java 文件源码 项目:WebSandboxMC 阅读 19 收藏 0 点赞 0 评论 0
@Override
public void channelRead0(final ChannelHandlerContext ctx, WebSocketFrame frame) throws Exception {
    webSocketServerThread.log(Level.FINEST, "channel read, frame="+frame);
    // TODO: log at INFO level if this the first data we received from a client (new first connection), to
    // help detect clients connecting but not sending authentication commands (in newPlayer)

    if (this.checkIPBans) {
        String ip = webSocketServerThread.getRemoteIP(ctx.channel());
        if (this.ipBans.contains(ip)) {
            webSocketServerThread.sendLine(ctx.channel(), "T,Banned from server"); // TODO: show reason, getBanList
            return;
        }
    }

    if (frame instanceof BinaryWebSocketFrame) {
        ByteBuf content = frame.content();

        byte[] bytes = new byte[content.capacity()];
        content.getBytes(0, bytes);

        final String string = new String(bytes);
        webSocketServerThread.log(Level.FINEST, "received "+content.capacity()+" bytes: "+string);

        this.webSocketServerThread.scheduleSyncTask(new Runnable() {
            @Override
            public void run() {
                webSocketServerThread.handle(string, ctx);
            }
        });
    } else {
        String message = "unsupported frame type: " + frame.getClass().getName();
        throw new UnsupportedOperationException(message);
    }
}
WebSocketServerThread.java 文件源码 项目:WebSandboxMC 阅读 24 收藏 0 点赞 0 评论 0
public void broadcastLineExcept(ChannelId excludeChannelId, String message) {
    for (Channel channel: allUsersGroup) {
        if (channel.id().equals(excludeChannelId)) {
            continue;
        }

        channel.writeAndFlush(new BinaryWebSocketFrame(Unpooled.copiedBuffer((message + "\n").getBytes())));
    }
}
PacketEncoder.java 文件源码 项目:SurvivalMMO 阅读 24 收藏 0 点赞 0 评论 0
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
protected void encode(ChannelHandlerContext ctx, Packet packet, List out) throws Exception {
    ByteBuf buf = ctx.alloc().buffer().order(ByteOrder.LITTLE_ENDIAN);
    int packetId = reg.CLIENTBOUND.getPacketId(packet.getClass());
    if (packetId == -1) {
        throw new IllegalArgumentException("Provided packet is not registered as a clientbound packet!");
    }

    buf.writeByte(packetId);
    packet.writeData(buf);
    out.add(new BinaryWebSocketFrame(buf));

    Server.log.finest("Sent packet ID " + packetId + " (" + packet.getClass().getSimpleName() + ") to " + ctx.channel().remoteAddress());
}
Server.java 文件源码 项目:websocket-mqtt-forwarder 阅读 34 收藏 0 点赞 0 评论 0
@Override
protected void decode(ChannelHandlerContext chc, BinaryWebSocketFrame frame, List<Object> out) throws Exception
{
    //convert the frame to a ByteBuf
    ByteBuf bb = frame.content();
    bb.retain();
    out.add(bb);
}
Server.java 文件源码 项目:websocket-mqtt-forwarder 阅读 26 收藏 0 点赞 0 评论 0
@Override
protected void encode(ChannelHandlerContext chc, ByteBuf bb, List<Object> out) throws Exception
{
    //convert the ByteBuf to a WebSocketFrame
    BinaryWebSocketFrame result = new BinaryWebSocketFrame();
    result.content().writeBytes(bb);
    out.add(result);
}
PacketEncoder.java 文件源码 项目:Clither-Server 阅读 24 收藏 0 点赞 0 评论 0
@SuppressWarnings({ "deprecation", "unchecked", "rawtypes" })
@Override
   protected void encode(ChannelHandlerContext ctx, Packet packet, List out) throws Exception {
       ByteBuf buf = ctx.alloc().buffer().order(ByteOrder.BIG_ENDIAN);
       int packetId = PacketRegistry.CLIENTBOUND.getPacketId(packet.getClass());
       if (packetId == -1) {
           throw new IllegalArgumentException("Provided packet is not registered as a clientbound packet!");
       }

       buf.writeByte(packetId);
       packet.writeData(buf);
       out.add(new BinaryWebSocketFrame(buf));

       ClitherServer.log.finest("Sent packet " + " (" + packet.getClass().getSimpleName() + ") to " + ctx.channel().remoteAddress());
   }


问题


面经


文章

微信
公众号

扫码关注公众号