/**
* 将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();
}
}
java类io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame的实例源码
WebSocketBinaryFrameByteBufAdapter.java 文件源码
项目:util4j
阅读 22
收藏 0
点赞 0
评论 0
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());
}