Здравствуйте, c-smile, Вы писали:
CS>Что означает "basic support of websockets", слово basic в частности?
Basic означает, что RESTinio делает только базовые манипуляции с Websocket-фреймами. Т.е. принимает входящий фрейм, проверяет его корректность и, если фрейм корректен, то фрейм отдается пользователю для обработки. При этом на плечах пользователя остаются следующие задачи:
обнаружение входящего запроса с заголовком upgrade для того и вызов restinio::websocket::basic::upgrade;
обработка таких фреймов, как ping и pong. И, соответственно, самостоятельный контроль за тем, когда нужно отослать ping;
склейка continuation-фреймов в единое целое (restinio::websocket::basic это сам не делает);
ручное закрытие всех созданных websocket-ов при завершении работы сервера.
Так же restinio::websocket::basic делает только минимально необходимые операции с исходящими фреймами.
В последующих версиях мы хотим сделать еще и restinio::websocket::easy, в котором пользователю будут доставляться только текстовые и бинарные фреймы, а ping-и и pong-и будет обрабатывать сам restinio. Так же хотим, чтобы в restinio::websocket::easy пользователь просто указывал URL-ы, на которых он ждет обращения по websocket-ам, а upgrade выполнял бы сам RESTinio. Ну и в easy-реализации RESTinio мог бы сам глушить все открытые websocket-ы при завершении работы сервера.
При этом пользователю будут доступны и restinio::websocket::basic, и restinio::websocket::easy.
По остальным вопросам ответим позже.
Re[19]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Здравствуйте, so5team, Вы писали:
S>Вы опять не правы.
Про это мы уже говорили, есть люди которые всегда уверены в своей правоте, все другие для них, если думают иначе — неправы.
S>Речь о том, что если вы приходите в тему без конструктива, то пользы от вас ноль.
Конструктив был, только отчего-то у вас сразу бомбануло из-за того, что я не стал нахваливать ваш фреймворк, а стал задавать вопросы.
S>Если в ответ на эти слова вы начинаете себя вести как оскорбленная институтка, то ничего не остается, как начать называть вещи своими именами.
Вообще-то как ребенок ведете себя вы — не стал я вас гладить по голове и все — слезы, сопли, обиды.
S>Так что давайте без обиняков: если вам есть что сказать по делу, то говорите.
Я уже сказал, если хотите продолжения ответьте исчерпывающе на мои вопросы.
S>Если вы не хотите общаться предметно и конструктивно, то вы, очевидно, тролль-пустозвон и, с большой долей вероятности, "малолетний дебил" (c) Вам выбирать кем быть.
Я же говорю — обиженный ребенок.
S>Ну и да, на вопрос про опыт вам был дан ответ
На кону мочало, начинаем все с начала. Не было конструктива.
Даже ваши сентенции по поводу предполагаемого nginx-а в качестве предшествующего reverse proxy, совершенно не по делу, поскольку наличие или отсутствие перед приложением с RESTinio внутри ничего не меняет в позиционировании и целях RESTinio.
MTD>Я уже сказал, если хотите продолжения ответьте исчерпывающе на мои вопросы.
На ваши вопросы были даны ответы. Если вы что-то в ответах не поняли и/или не увидели, то a) это ваши проблемы и b) вы всегда можете вежливо переспросить и уточнить.
Re[21]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Здравствуйте, so5team, Вы писали:
S>На кону мочало, начинаем все с начала. Не было конструктива.
Был.
S>Даже ваши сентенции по поводу предполагаемого nginx-а в качестве предшествующего reverse proxy, совершенно не по делу, поскольку наличие или отсутствие перед приложением с RESTinio внутри ничего не меняет в позиционировании и целях RESTinio.
Конечно меняет, nginx серьезный отлаженный продукт созданный опытными людьми, там уже 100 раз обошли все грабли, про которые вы пока даже не в курсе.
S>На ваши вопросы были даны ответы.
Не было.
S>вы всегда можете вежливо переспросить и уточнить.
Я с самого начала так и поступал, но у вас бомбануло, началась истерика, хамство, оскорбления, что напрочь отбило желание общаться конструктивно, теперь так прихожу понаблюдать за корчами — забавно.
Re[22]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Да, вы "малолетний дебил" (с). Вот и весь конструктивный итог общения с вами в данной теме.
S>>Даже ваши сентенции по поводу предполагаемого nginx-а в качестве предшествующего reverse proxy, совершенно не по делу, поскольку наличие или отсутствие перед приложением с RESTinio внутри ничего не меняет в позиционировании и целях RESTinio.
MTD>Конечно меняет, nginx серьезный отлаженный продукт созданный опытными людьми, там уже 100 раз обошли все грабли, про которые вы пока даже не в курсе.
Еще раз, специально для вас, вдруг дойдет: есть C++ приложение, которое должно выставить наружу REST API или простой HTTP вход. В это приложение будут приходить запросы по протоколу HTTP. И приложению совершенно безразлично, будут ли запросы приходить напрямую от клиента, или же их будет выдавать какой-то load balancer или reverse proxy перед приложением. RESTinio решает задачу простого, безболезненного, но эффективного встраивания этого самого HTTP-входа в C++ приложение.
Все. Именно для этого RESTinio и сделан.
Хотите иметь перед своим приложением "серьезный отлаженный продукт созданный опытными людьми" -- пожалуйста, никто вам не запретит. Только вот nginx не поможет вам реализовать HTTP-вход в само приложение (если только вы не будете делать этот самый вход через (fast)CGI или через модули самого nginx-а).
Re[3]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
Здравствуйте, so5team, Вы писали:
S>При этом пользователю будут доступны и restinio::websocket::basic, и restinio::websocket::easy.
S>По остальным вопросам ответим позже.
Здравствуйте, so5team, Вы писали:
S>Да, вы "малолетний дебил" (с). Вот и весь конструктивный итог общения с вами в данной теме.
Евгений, то что у вас так сильно бомбит лично меня веселит, но настораживает, что о своем здоровье вы как-то не думаете. Если из-за возгорания, не дай бог вы нас покинете (форум, например, в очередной раз), кто еще будет нас радовать смешными и бесполезными велосипедами?
MTD>>Конечно меняет, nginx серьезный отлаженный продукт созданный опытными людьми, там уже 100 раз обошли все грабли, про которые вы пока даже не в курсе.
S>Еще раз, специально для вас, вдруг дойдет: есть C++ приложение, которое должно выставить наружу REST API или простой HTTP вход. В это приложение будут приходить запросы по протоколу HTTP. И приложению совершенно безразлично, будут ли запросы приходить напрямую от клиента, или же их будет выдавать какой-то load balancer или reverse proxy перед приложением.
Даже студенты начинают подозревать, что в реальном мире все не так просто и сервер, который отлично работал в своей локалке, отчего-то вдруг начинает работать плохо в бою. Но только не прирожденный эксперт по всему на свете.
S>RESTinio решает задачу простого, безболезненного, но эффективного встраивания этого самого HTTP-входа в C++ приложение.
Не уверен, что решает. Пока никаких реальных проектов на вашем фрейворке я не видел, а отсутствие у вас опыта в данной области не может не настораживать.
Re[4]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
Здравствуйте, c-smile, Вы писали:
CS>Спасибо, и ещё с autobahn тестировали?
Да, тестировали. При запуске тестов использовался пример websocket_detailed. Из реализованных все кейсы были пройдены (на момент тестирования при прохождении разделов 12.* и 13.* в качестве результата было "Unimplemented").
Re: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
S>Библиотека распространяется под BSD-3-CLAUSE лицензией. Мы говорим, что она находится в состоянии beta-версии, т.к. не уверены, что ее API в достаточной степени стабилизировался и не претерпит ломающих изменений в будущем. Но сама реализация достаточно стабильна (например, на RESTinio было сделано одно из решений для Mail.ru-шного HighloadCup-а, которое заняло 41-е место в финале конкурса).
Вот само решение для HighloadCup-а. В принципе, это практически то самое решение, которое было использовано в конкурсе. За двумя небольшими правками:
решение для конкурса работало на промежуточной версии RESTinio, у которой API несколько отличался от API RESTinio-0.3, поэтому опубликованный код был кое-где подправлен, чтобы получилось скомпилироваться с финальной версией RESTinio-0.3;
после того, как финалисты начали делиться секретами производительности, в код решения был добавлен специальный ключик, активирующий busy-waiting на Asio. Это дает некоторый прирост производительности, но то решение, которое заняло 41-е место в финале busy-waiting не использовало.
По поводу самого решения. Использовался самый тривиальный подход с хранением всей информации в памяти. При загрузке json-файлов использовался честный парсинг, данные в ОП хранились уже в C++ном представлении. Результирующие json-оны генерировались на лету при формировании ответа. Поскольку основные затраты были связаны с Asio, то возня с предварительной генерацией ответных json-ов никакого выигрыша не давала.
Изначально для роутинга запросов использовался expressjs-like роутер из RESTinio, но быстро выяснилось, что его реализация на базе std::regex изрядно тормозит и пришлось сделать ручной разбор query_string и ручное определение типа запроса.
Еще для этого конкурса использовался сервер без таймеров:
using traits_t =
restinio::traits_t<
restinio::null_timer_factory_t,
restinio::null_logger_t,
root_req_handler_t >;
using server_t = restinio::http_server_t< traits_t >;
С таймерами на базе Asio результат был бы хуже, т.к. в настоящее время таймеры имеют заметные накладные расходы, в следующей версии RESTinio мы с этим будем отдельно разбираться.
Re[24]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Здравствуйте, MTD, Вы писали:
MTD>Евгений, то что у вас так сильно бомбит лично меня веселит, но настораживает, что о своем здоровье вы как-то не думаете. Если из-за возгорания, не дай бог вы нас покинете (форум, например, в очередной раз), кто еще будет нас радовать смешными и бесполезными велосипедами?
Поражает Ваша уверенность в том, что беседу с Вами ведет исключительно Евгений. Между тем, это объясняет Вашу способность судить и о продукте по косвенным факторам, и о причастности к этому продукту людей, отметившихся в этой теме.
Раз уж попытки перейти в конструктивное русло не оказались успешными, то может быть просто прекратите этот троллинг?
Re[25]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Здравствуйте, so5team, Вы писали:
S>Поражает Ваша уверенность в том, что беседу с Вами ведет исключительно Евгений.
Тут либо у Евгения ко всему прочему еще и раздвоение личности, либо Евгению, если он не хочет чтобы о нем думали как о неуравновешенном хаме с детскими комплексами, то не надо давать писать непонятно кому.
S>может быть просто прекратите этот троллинг?
Я никого не тролю, просто наблюдаю за поциентом — хобби у меня такое, а уж поциент раскрывается сам — на отличненько.
Re[26]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Здравствуйте, MTD, Вы писали:
MTD>Тут либо у Евгения ко всему прочему еще и раздвоение личности, либо Евгению, если он не хочет чтобы о нем думали как о неуравновешенном хаме с детскими комплексами, то не надо давать писать непонятно кому.
Просто смиритесь с тем, что из под so5team пишет несколько человек, в зависимости от того, в чьей зоне ответственности находится вопрос. Поэтому пытаясь плюнуть в одного конкретного человека, который, как вам кажется, сейчас с вами общается, вы рискуете попасть совершенно в другого.
Остается надеяться, что сей простой факт вы сможете понять, в отличии от более сложных вещей, таких как цели и задачи RESTinio.
Re[26]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Здравствуйте, MTD, Вы писали:
MTD>Тут либо у Евгения ко всему прочему еще и раздвоение личности, либо Евгению, если он не хочет чтобы о нем думали как о неуравновешенном хаме с детскими комплексами, то не надо давать писать непонятно кому.
MTD>Я никого не тролю, просто наблюдаю за поциентом — хобби у меня такое, а уж поциент раскрывается сам — на отличненько.
А какой у Вас опыт в этом хобби? Почему Вы считаете, что способны прийти к правильным выводам в результате своих наблюдений? Например, бегло пробежавшись по Вашим комментариям, мне показалось, что многое, о чем Вы говорили в предыдущем комментарии, справедливо и для Вас.
Re[27]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Здравствуйте, so5team, Вы писали:
MTD>>Тут либо у Евгения ко всему прочему еще и раздвоение личности, либо Евгению, если он не хочет чтобы о нем думали как о неуравновешенном хаме с детскими комплексами, то не надо давать писать непонятно кому.
S>Просто смиритесь с тем, что из под so5team пишет несколько человек, в зависимости от того, в чьей зоне ответственности находится вопрос. Поэтому пытаясь плюнуть в одного конкретного человека, который, как вам кажется, сейчас с вами общается, вы рискуете попасть совершенно в другого.
Типа если надо оппонета дебилом назвать — это зона ответственности одного, а если мудаком — то другого? Да вы там упоролись
S>Остается надеяться, что сей простой факт вы сможете понять, в отличии от более сложных вещей, таких как цели и задачи RESTinio.
А что там сложного? Взять готовые либы и написать некоторое количество оберток — курсовой проект в вузе.
Re[27]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Здравствуйте, so5team, Вы писали:
S>Почему Вы считаете, что способны прийти к правильным выводам в результате своих наблюдений?
Сделать правильные выводы целью моих наблюдений не является, я просто наслаждаюсь видом беснующегося поциента. С утра ему похоже немного полегчало, но вчера под вечер обострение было — залюбуешься.
S>мне показалось
Говорят в таком случае в церкви помочь могут, сам не пробовал, за что купил, как говорится.
Re[28]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Здравствуйте, MTD, Вы писали:
MTD>Типа если надо оппонета дебилом назвать — это зона ответственности одного, а если мудаком — то другого? Да вы там упоролись
Ну, если оппонент на всех производит одинаковое впечатление... Если оппонент тупит как дебил, а ведет себя как мудак, то что уж поделать.
S>>Остается надеяться, что сей простой факт вы сможете понять, в отличии от более сложных вещей, таких как цели и задачи RESTinio.
MTD>А что там сложного?
Ну вот вам-то почему-то не понятно. Хотя, действительно, что там сложного. Тем не менее:
Каково ваше позиционирование фреймворка? Какова его ниша?
И хотя вам все несколько раз объяснили, вы все равно демонстрируете непонимание. Если это не дебилизм, то что, троллинг?
Re[29]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Здравствуйте, so5team, Вы писали:
S>Ну, если оппонент на всех производит одинаковое впечатление... Если оппонент тупит как дебил, а ведет себя как мудак, то что уж поделать.
Был бы ты взрослым человеком, обладающим развитым интеллектом (каким ты себе кажешься), то нашел бы способ не начинать цирк, а напротив грамотно и аргументированно донести свою точку зрения и заслужить уважение. А так вся тема — раскрытие детских комплексов хамоватого разработчика, который несет людям свои велосипеды и требует признания, но всем отчего-то пофиг.
MTD>>А что там сложного?
S>Хотя, действительно, что там сложного.
Снова консенсус. Если у тебя получается сложно, значит скорее всего велосипедишь ты не так.
S>
Каково ваше позиционирование фреймворка? Какова его ниша?
S>И хотя вам все несколько раз объяснили, вы все равно демонстрируете непонимание.
Где непонимание? Есть понимание — ты тешишь свое самолюбие и мечтаешь (уже сколько лет) завоевать мир, получить призвание. Миру как обычно пофиг.
S>Если это не дебилизм, то что, троллинг?
Да хз, что там с твоей стороны. Лучше был бы троллинг, а то совсем грустно.
Re[28]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
Здравствуйте, MTD, Вы писали:
MTD>Сделать правильные выводы целью моих наблюдений не является
Именно поэтому Вы решили, что резкость в высказываниях является отражением эмоционального состояния "поциента".
MTD>Говорят в таком случае в церкви помочь могут, сам не пробовал, за что купил, как говорится.
В одном случае Вы занимаетесь деятельностью, не делая никаких выводов о результатах этой деятельности, в другом случае Вы предоставляете информацию, не подкрепленную никаким опытом или фактами.
Безусловно, у нас мог бы получиться конструктивный диалог, и очень жаль что техническая тема скатилась в область троллинга. Мы обязательно сделаем выводы и постараемся в следующий раз более взвешенно отвечать на Ваши вопросы, если конечно же Вы не потеряете интерес к нашей разработке.
Re: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
Здравствуйте, so5team, Вы писали:
S>что резкость в высказываниях
Где резкость? Жалобы, нытье, хамство, оскорбления — это не резкость.
S>В одном случае Вы занимаетесь деятельностью, не делая никаких выводов о результатах этой деятельности, в другом случае Вы предоставляете информацию, не подкрепленную никаким опытом или фактами.
Кстати, четкое определение того, чем вы занимаетесь уже который год.
S>Безусловно, у нас мог бы получиться конструктивный диалог
Да, достаточно не хамить, если не нравится ответ и люди потянутся.
S>Мы обязательно сделаем выводы и постараемся в следующий раз более взвешенно отвечать на Ваши вопросы, если конечно же Вы не потеряете интерес к нашей разработке.
Вот это уже слова взрослого человека, осталось сделать второй шаг и извиниться.