В модели сервера-клиента на основе TCP, использующей Netty Channels, существует ли какое-либо соответствие между количеством Channel.write()
с сервера и соответствующим Channel.messageReceived()
на принимающем клиенте? Если я делаю 10 writes()
на отправителя, значит ли это, что messageReceived()
будет вызываться 10 раз на слушающем клиенте? или Netty может агрегировать отправленные данные (от write()
s от отправителя) до более или менее числа messageReceived()
событий на клиенте? Есть ли способ настроить это поведение в Netty?Сообщение Channel.messageReceived в Netty
ответ
Не гарантируется, что у вас есть сопоставление 1: 1 для ваших вызовов Channel.write (..) и messageReceived. Вам нужно использовать некоторый подкадр FrameDecoder (возможно, написать свой собственный), который будет буферизовать ChannelBuffer, пока вы не получите достаточно данных, чтобы отправить ваше сообщение следующим ChannelHandlers в ChannelPipeline на сервере.
Netty уже поставляется с некоторыми готовыми к использованию реализациями FrameDecoder, такими как, например, DelimiterBasedFrameDecoder, который будет буферизовать данные до тех пор, пока не получит разделитель, а затем отправит их следующим обработчикам в ChannelPipeline.
См. [1] для получения более подробной информации.
[1] http://netty.io/docs/stable/api/org/jboss/netty/handler/codec/frame/FrameDecoder.html
Да, есть способ сделать это, но вам нужно будет дать нам больше, чтобы сделать что-нибудь еще.
- 1. Netty channel.write не пишет сообщение
- 2. Полученное сообщение TCP Netty получено
- 3. Netty IO отправить сообщение клиенту
- 4. netty- как передать сообщение и данные вместе?
- 5. Как отменить/отпустить сообщение в MessageToMessageDecoder в Netty 4
- 6. Как отправить сообщение конкретному каналу клиента в Netty из обработчика netty-сервера
- 7. Netty 4 - Исходящее сообщение в заголовке трубопровода отброшено
- 8. Netty - лучший способ отправить сообщение одновременно в java
- 9. Netty отправляет окончательное сообщение в ChannelGroup перед закрытием
- 10. Буферная коррупция в netty
- 11. Netty Websockets
- 12. Netty - Обрамление
- 13. Отправить сообщение String от моего клиента Netty на мой сервер
- 14. Web Socket & Netty - Полученное сообщение Тип на messageReceived
- 15. netty echo server отправляет сообщение, но я не вижу его
- 16. Netty ClosedChannelException Когда Asynchronize Process Полученное мной сообщение
- 17. Сообщение сервера Netty, которое не делает его клиенту
- 18. Netty NioSocketChannel получил сообщение об ошибке на многопоточном письме
- 19. Как манипулировать Сообщение, поступающее с сервера или клиента Netty
- 20. Netty всегда закрывает канал, если не удается отправить сообщение
- 21. Найти канал в Netty 4.0.32
- 22. camel-netty, disconnectOnNoReply issue
- 23. Как поместить netty-клиента на netty-сервер
- 24. Syslog Netty Server - Defaultdelimiter
- 25. Netty Game Server
- 26. Устранение утечки сервера Netty
- 27. IdleStateHandler в Netty 4?
- 28. Пользовательский FrameDecoder в netty
- 29. Netty Connections в TIME_WAIT
- 30. ресурсов Утечка в Netty