#java #netty
Перед тем как написать сюда были предприняты попытки узнать все это у googla, но нечего путного он не выдает, на сайте библиотеки с инфой скудно. Как на сервере можно получить коннект клиента, чтобы потом с ним работать в отдельных потоках? В old I/O это можно было сделать при помощи serverSocket.accept()
Ответы
Ответ 1
Коннект клиента можно получить следующим образом: на сервере создается handler и переопределяются нужные методы например channelActive в этот handler можно передать то куда будут складываться коннекты и при удачном подключении вызовется channelActive и в нем можно будет вытащить из ChannelHandlerContext коннект(Channel). @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { server.channel = ctx.channel(); } Дальше channel предоставляет возможность отправки и получения сообщений, но просто так отправить строку или набор байтов не выйдет(у меня не получилось), для этого нужно использовать ByteBuf. ByteBuf buf = channel.alloc().buffer(); buf.writeBytes("message".getBytes()); chanel.pipeline().writeAndFlush(buf); P.S надеюсь кому нибудь это пригодится.
Комментариев нет:
Отправить комментарий