Как добавить несколько декодеров кадров на основе разделителя в netty ...............? - PullRequest
0 голосов
/ 22 февраля 2012

Я использую Нетти , чтобы получить поток строковых данных в этом формате ...

               string1#st2|st3|st4..|....| 

Я получаю несколько блоков этого типа строк, которые разделены \ n , и я хочу сначала разделить эти блоки, а затем отдельные строки ...

Моя проблема в том, что если я использую декодер кадров на основе разделителя с \ n в качестве разделителя, я могу без проблем разделить строки .. Но как я могу отделить остальную часть строки без использования строковый токенизатор .... Есть ли способ добавить несколько декодеров кадров на основе разделителя ? Потому что я хочу сначала обработать информацию в строке1, а затем на основе этого остальную часть строки .... Если я напишу декодер для разделения строки1, то не будет никакого способа отделить оставшуюся часть строки без использования токенизации строки ...

Спасибо ...

Редактировать

Есть ли способ сохранить объект в канале ... как в объектах контекста сервлета .......

Ответы [ 2 ]

0 голосов
/ 04 декабря 2016

В netty 5 вы можете напрямую устанавливать настраиваемые атрибуты в канал, как контекст в сервлете.

С помощью атрибутов канала вы всегда можете обработать оставшуюся часть строки после сохранения подстрок с разделителями, возможно, отформатированный результат,через конвейер декодеров.

Вот пример, на который можно ссылаться: Использование атрибутов канала в различных обработчиках контекста

0 голосов
/ 22 февраля 2012

Вы можете сделать это, просто добавив два (или более, если вам нужно) экземпляра DelimiterBasedFrameDecoder к вашей ChannelPipeline.Просто поместите тот, который разделен, сначала на \ n, а затем добавьте другой.Это должно просто работать ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...