Pull to refresh

Comments 11

А транспорт у него http? То есть в каком месте он бинарный тогда получается?
От заголовков в http никуда не деться. Это по определению. У тела запроса/ответа mime тип binary/octet-stream.
Хм… вот не понял чем он лучше, чем JSON? Я уж лучше последний в QVariant буду парсить и опять же я могу QVariant спокойно сериализовать в JSON, главное нужные операторы сериализации сделать.
Там где я работаю реализовано много сервисов с использованием hessian. Потому я и использую hessian, против JSON ни чего не имею. Ну и JSON несколько больше будет весить.
Ну на самом деле при юзании JSON-RPC совсем незначительно больше, зато работать из Qt удобнее. Впрочем раз уж это давно сделали, то ладно, но я при создании чего-то нового врят-ли стал использовать hessian, по мне так JSON наиболее простой и универсальный контейнер.
Скиньте пожалуйста пример как правильно использовать JSON-RPC и использовать Qt. Или ссылки на хорошую доку. Хочу изучить вопрос, може пора все менять.
Вот реализовать бы на Qt стеке Thrift, было бы очень интересно.
я как-то начинал это делать и уперся в идеологию исключений. Так получилось, что идеологически исключений нет в Qt, а в Thrift есть. Думал как это решить и уже нашел практически решение (естественно сигналы/слоты) так накрыло работой и больше не занимался.
Но можно там бустовской C++ реализацией на крайний случай пользоваться.
Сразу в глаза бросается недостаток — в методе invoke когда указываем слоты для обработки ошибки/результата нет возможности указать тип соединения (а их уже аж 5 штук).
поэтому лучше было бы сделать чтоб у класса QHessian::QHessianMethodCall были просто два слота. Это как раз Qt-way. А человек уже может и ни один слот ни прицепить и стопятдесят штук одновременно и причем по разному.

Вообще в Qt есть похожий механизм QDataStream doc.qt.nokia.com/latest/qdatastream.html
опечатался, лучше было бы сделать чтоб у класса QHessian::QHessianMethodCall были просто два сигнала.
Конечно сигнала :-)
>> QHessian::QHessianMethodCall были просто два слота.

Да я думал об этом, но тогда меняется жизненный цикл объекта QHessian::QHessianMethodCall — он должен существовать пока идет взаимодействие (ожидание данных с сервера), а в принятом мной варианте этот объект можно создовать в стеке.
Sign up to leave a comment.

Articles