Парсинг StAX от канала NIO Java

Я использую:

if(jQuery.support.touch){
    alert('Touch enabled');
}

в jQuery mobile 1.0.1

8
задан Harlan Iverson 25 June 2009 в 18:38
поделиться

3 ответа

Вы уверены, что вам нужно использовать NIO? Это может не принести той относительной выгоды, которую изначально ожидали:

Пол Тайма: Убейте миф, пожалуйста. NIO не быстрее, чем ввод-вывод

Пол Тайма: Написание многопоточных серверов Java - что старого есть нового

Стек, показывающий, где внутри createXMLStreamReader () блокируется, может помочь, но, вероятно, ведет себя так, как задумано. Если он был разработан для работы с InputStreams, которые всегда либо (1) выдают ожидаемый объем данных; (2) конец; или (3) блок, то он не будет автоматически вести себя (обычно более сложным и с отслеживанием состояния) способом, который может вернуться после прочтения любого количества неполных входных данных без большой глубокой переработки.

4
ответ дан 5 December 2019 в 22:20
поделиться

Вам необходимо использовать служебный класс java.nio.channels.Channels.

ReadableByteChannel ch = //...
InputStream in = Channels.newInputStream(ch);

Возможно, вам потребуется настроить блокирующий канал сокета.

SelectableChannel ch = //...
ch.configureBlocking(true);

Это означает, что вы не сможете для неблокирующего ввода-вывода.

0
ответ дан 5 December 2019 в 22:20
поделиться

Я тоже начал искать, тоже на предмет использования сервера XMPP. Я смотрел вокруг, и похоже, что есть только одна реализация, которая обещает поддержку NIO: Aalto http://wiki.fasterxml.com/AaltoHome

Но, похоже, она выпущена до версии 0.9.5, Март 2009 г. Итак, я не уверен, в каком состоянии он находится, но это может быть хорошей отправной точкой. Если вы не сможете убедить более крупный проект (например, Woodstox) переделать некоторые из их внутренних классов для поддержки NIO.

2
ответ дан 5 December 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: