0
URL은 http://url.com/username
입니다. 클라이언트가 서버에 연결할 때 channelActive에서 사용자 이름을 확인해야합니다. 가능합니까?
감사netty4.x의 channelActive() 메소드에서 URL을 얻을 수있는 방법
public class Handler extends ChannelInboundHandlerAdapter{
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg){
//NOT HERE
}
@Override
public void channelActive(ChannelHandlerContext ctx) {
//1. get username
//2. do some queries with username
}
편집 : 나는 개체를 얻기 위해 두 핸들러 시도했지만 여전히 작동하지 않습니다.
@Override
protected void initChannel(SocketChannel ch) throws Exception {
ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast(new SimpleChannelInboundHandler<Object>() {
@Override
protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception {
DB.insert(msg);//insert msg to DB
}
});
pipeline.addLast(new MyHandler());
public class MyHandler extends ChannelInboundHandlerAdapter {
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
DB.get();// get msg from DB
ctx.fireChannelActive();
}
2 개의 ChannelInboundHandlers로 시도했지만 여전히 작동하지 않습니다. Object를 얻는 다른 방법은 없습니다. @Dmitriy Dumanskiy – uidin
Checkout netty http example - https://github.com/netty/netty/tree/4.1/codec-http –