1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhllxt-asio2

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 15 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 10:53 f491b61

2023-12-30 version 2.8:

  • Обновить библиотеку asio до версии 1.29.0.

  • Обновить библиотеку beast до версии 351 (boost-1.84.0).

  • Обновить библиотеку fmt до версии 9.1.0.

  • Добавить CMake для сборки примеров проектов.

  • Добавить поддержку mqtt, включая версии v3.1, v3.1.1 и v5.0.

  • Изменить триггерные потоки "_fire_init, _fire_start, _fire_stop" с основного потока на поток 0.

  • Изменить интерфейс функции "call" в rpc: если она вызывается в коммуникационном потоке, то теперь она вырождается в async_call, а возвращаемое значение становится пустым.

  • Заменить файл "asio2/base/selector.hpp" на "asio2/external/asio.hpp и asio2/external/beast.hpp", чтобы разделить заголовочные файлы asio и beast. Ранее "included tcp_lient.hpp" содержал и asio, и beast, но теперь "included tcp_lient.hpp" будет содержать только asio.

  • Заменить компонент последовательного порта с "scp" на "serial_port".

  • Оптимизировать функции "push_event, next_event", чтобы избежать многократного копирования session_ptr.

  • Модифицировать функции "post, dispatch" в post_cp.hpp, добавив "derive.selfptr()", чтобы гарантировать, что функция обратного вызова asio::post должна удерживать session_ptr.

  • Разделить исходную асинхронную функцию "send" на две функции: "send" и "async_send". Теперь "send" означает синхронную отправку, а "async_send" — асинхронную отправку (можно найти "send" в коде и заменить его на "async_send"). Теперь возвращаемым значением функции "send" является количество отправленных байтов данных (ранее bool), а возвращаемым значением "async_send" является void. Если синхронная функция "send" вызывается в коммуникационном потоке, она вырождается в асинхронную функцию "async_send";

  • Изменить поведение функции async_send с параметром обратного вызова: всякий раз, когда вызов функции async_send завершается неудачно, например, из-за исключения, вызывается обратный вызов. В предыдущих версиях обратный вызов вызывался только при сбое записи данных.

  • Изменить http::request и http::response в функции обратного вызова http на http::web_request и http::web_response, чтобы обеспечить совместимость с boost (можно найти http::request в коде и напрямую заменить его на http::web_request. То же самое относится к response. Для получения подробной информации см. пример кода http).

  • Удалить параметр "asio::error_code ec" во всех функциях обратного вызова, например: раньше это было bind_start([](asio::error_code ec){}); теперь это bind_start({}); Теперь необходимо использовать функцию asio2::get_last_error() для определения наличия ошибки; модифицированные интерфейсы включают: bind_start,bind_stop,bind_connect,bind_disconnect и async_call функций обратного вызова rpc.

  • Удалить параметры error_code в нескольких функциях, в основном это http_client::execute,ping::execute,http::make_request,http::make_response и т. д., теперь необходимо использовать asio2::get_last_error(), чтобы определить, произошла ли ошибка.

  • Удалить thread_local static error_code ec_ignore; в asio2/base/error.hpp.

  • Устранить ошибки компиляции под "Visual Studio 2017 - Windows XP (v141_xp)", заменив std::shared_mutex на макрос asio2_shared_mutex.

  • Исправить ошибку: после вызова server.stop(); в некоторых случаях сервер всё ещё принимает сеанс, и сеанс может нормально "получать и отправлять данные". Это приведёт к тому, что сервер никогда не завершит работу.

  • Исправить ошибку: в asio2/base/error.hpp : thread_local static error_code ec_last; В vs2017 и некоторых случаях это может привести к сбою перед функцией "main".

  • Исправлена ошибка: reconnect_timer будет недействителен при "client.start(...);client.stop();client.start(...)".

  • Исправлена ошибка: уведомление _fire_init() не всегда вызывается в потоке 0.

  • Исправлена ошибка: некорректный анализ имени файла и content_type в asio2/http/multipart.hpp.

  • Исправлена ошибка: asio2/util/ini.hpp, Когда имя исполняемого файла не содержит точки ".", автоматически созданное имя файла ini неверно.

  • Исправлена ошибка: при вызове "start" с некоторым исключением состояние будет "starting", это приведёт к тому, что "start" всегда будет терпеть неудачу.

  • Исправлена ошибка: это вызовет сбой, когда... Вызов «client.start» несколько раз, все «ssl client» и «websocket client» будут затронуты этой ошибкой, потому что многопоточность читает и записывает «ws_stream_».

  • Исправлена ошибка: ошибка кода при обходе «http_router's wildcard_routers_» вызывает сбой.

  • Исправлена ошибка: когда таймер останавливается сразу после запуска в потоке io_context, таймер не останавливается.

  • Исправлена ошибка: если пользователь вызвал «http::response.defer()» в обратном вызове recv, это может вызвать сбой, если сеанс отключился до того, как «defer» выполнился, поскольку «rep_» был уже уничтожен к этому времени.

  • Исправлена ошибка: если пользователь вызвал «http::response.defer()» в обратном вызове recv и у клиента нет опции «keep_alive», ответ не будет отправлен клиенту правильно.

  • Исправлена ошибка: если пользователь вызвал «http::response.defer()» в обратном вызове recv, переменная «req_» может быть прочитана и записана двумя потоками одновременно, что может привести к сбою.

  • Исправлена ошибка: может найти функцию обратного вызова, которая не соответствует идентификатору компонента rdc.

  • Исправлена ошибка: в некоторых случаях после client.stop() client.is_stopped() может быть ложным.

  • Решена проблема, из-за которой KCP сервер и клиент неправильно отправляли fin frame.

  • Решена проблема с неправильным управлением порядком байтов в заголовке данных рукопожатия KCP.

  • Исправлено: когда вызывается client.stop, и в это время async_send вызывается в другом потоке, async_send может вести себя неожиданно (например, обратный вызов async_send не вызывается).

  • Устранены проблемы с ненужным выделением памяти в распределителе, чтобы уменьшить количество выделений памяти. Теперь все таймеры не используют настраиваемый распределитель для выделения памяти, а используют asio для автоматического выделения памяти.

  • Множество других общих улучшений, исправлений кода и улучшений. См. записи коммитов между 2020-12-23 и 2023-12-30.

Версия 2.7 от 23 декабря 2020 года:

  • Добавлена возможность удалённого вызова данных.
  • Другие общие улучшения.

Версия 2.6 от 24 сентября 2020 года:

  • Исправлена ошибка в классе connect_timeout_cp, приводившая к сбою программы.
  • Исправлена ошибка в классе ws_stream_cp, вызывавшая сбои утверждений программы в режиме отладки.
  • Исправлена ошибка в модуле rpc, приводившая к сбою программы после получения недопустимых данных.
  • Переписан код класса rpc_call_cp для поддержки цепочечных вызовов.
  • Переписаны API классов http и websocket.
  • Переписан пример кода.
  • Код для автоматического переподключения был исправлен и оптимизирован.
  • Добавлена автономная версия Beast для поддержки возможностей headonly http и websocket, теперь вся функциональность больше не зависит от библиотеки Boost.
  • Функция timeout классов rpc_client и rpc_session переименована в default_timeout.
  • Исправлены предупреждения и ошибки компиляции под clang. Компилируется под msvc (vs2017 vs2019) gcc8.2.0 clang10.
  • Для повышения надёжности обработки событий добавлен класс event_guard.
  • Удалены некоторые классы, файлы: httpws_server.hpp, httpws_session.hpp, httpwss_server.hpphttpwss_session.hpp;
  • Различные исправления кода и улучшения.
  • Библиотека asio обновлена до версии 1.16.1.
  • Библиотека beast обновлена до версии 290 (boost-1.73.0).
  • Библиотека cereal обновлена до версии 1.3.0.
  • Библиотека fmt обновлена до версии 7.0.3.

Версия 2.5 от 28 июня 2020 года:

  • Улучшены возможности SSL и загрузки сертификатов.
  • Исправлена ошибка url_decode.
  • Расширена функция user_data().
  • Другие общие улучшения.

Версия 2.4 от 28 апреля 2020 года:

  • Добавление вызова и async_call для rpc_server.
  • Добавление асинхронной версии вызова без функции обратного вызова.
  • Другие общие улучшения.
  • Исправление ошибки: исправление ошибки rpc при вызове параметров — это необработанный указатель или ссылка на объект.

Версия 2.3 от 10 января 2020 года:

  • Автоматический механизм переподключения в клиенте при отключении.
  • Исправление ошибок: данные не могут быть отправлены при перезапуске клиента в некоторых случаях (путём добавления механизма очереди событий).

Версия 2.2 от 2 ноября 2019 года:

  • Внутренний режим отправки изменён с синхронного на асинхронный.

Версия 2.1 от 28 июня 2019 года:

  • Некоторые ошибки исправлены. Версия 2.0:

    • [Большое обновление!!!]
    • Переписать весь код в режиме метапрограммирования с использованием шаблонов.
    • Поддержка версии 1.x больше не осуществляется.

Версия 1.4 от 12 апреля 2018 года:

  • Исправить некоторые ошибки в классе session_mgr_t.
  • Отрегулировать некоторый другой код.

Версия 1.3 от 24 января 2018 года:

  • Заменить boost::asio на автономный asio, чтобы избежать конфликтов при одновременном использовании boost и asio2.
  • Скорректировать и оптимизировать некоторый другой код.

Версия 1.2 от 6 января 2018 года:

  • Исправлена ошибка: отправитель и сеанс не отправляли уведомление о закрытии слушателю при закрытии.
  • Переработать код отправителя.

Версия 1.1 от 2 января 2018 года:

  • Обновить версию boost (asio) до 1.66.0.
  • Изменить параметры интерфейса прослушивания на ссылку.
  • Модифицировать функцию настройки SSL-сертификата, многие функции нужно было вызывать раньше, теперь достаточно вызвать одну функцию.
  • Оптимизировать множество внутренних кодов.

Версия 1.0 от 27 октября 2017 года:

  • Первый выпуск.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zhllxt-asio2.git
git@api.gitlife.ru:oschina-mirror/zhllxt-asio2.git
oschina-mirror
zhllxt-asio2
zhllxt-asio2
main