Я разработал клиентское приложение XMPP java / scala, которое отправляет данные асинхронно, используя (скажем) метод write
, и получает данные, используя метод listener
. Метод listener
получает данные в виде дискретных пакетов сообщений XMPP и обрабатывает их, используя метод processPacket
(который я могу изменить в зависимости от того, что я хочу сделать с полученными данными)
Я хочу подключить стороннюю библиотеку, которая считывает данные из inputstream
и записывает в outputstream
. В частности, я хочу, чтобы inputstream
сторонней библиотеки эмулировался с использованием данных, полученных с помощью моего listener
метода, а outputstream
- с помощью моего write
метода.
Какой самый простой способ сделать это? Я знаю, что это требует преобразования из потока в куски строк и наоборот. Некоторые советы будут оценены.
Структура пакета сообщений XMPP выглядит следующим образом (хотя при необходимости это можно изменить):
<message to = ... from = ...><body>data</body></message>