WebSocket++ v0.4.0 Release Notes

Release Date: 2014-11-04 // over 9 years ago
    • ๐Ÿ’ฅ BREAKING API CHANGE : All WebSocket++ methods now throw an exception of type
      ๐Ÿ‘ป websocketpp::exception which derives from std::exception. This normalizes
      ๐Ÿ‘ป all exception types under the standard exception hierarchy and allows
      WebSocket++ exceptions to be caught in the same statement as others. The error
      ๐Ÿ‘ป code that was previously thrown is wrapped in the exception object and can be
      ๐Ÿ‘ป accessed via the websocketpp::exception::code() method.
    • ๐Ÿ’ฅ BREAKING API CHANGE : Custom logging policies have some new required
      constructors that take generic config settings rather than pointers to
      ๐ŸŒฒ std::ostreams. This allows writing logging policies that do not involve the
      ๐ŸŒฒ use of std::ostream. This does not affect anyone using the built in logging
      policies.
    • ๐Ÿ’ฅ BREAKING UTILITY CHANGE : websocketpp::lib::net::htonll and
      ๐Ÿ›  websocketpp::lib::net::ntohll have been prefixed with an underscore to avoid
      conflicts with similarly named macros in some operating systems. If you are
      using the WebSocket++ provided 64 bit host/network byte order functions you
      ๐Ÿ›  will need to switch to the prefixed versions.
    • ๐Ÿ’ฅ BREAKING UTILITY CHANGE : The signature of base64_encode has changed from
      websocketpp::base64_encode(unsigned char const *, unsigned int) to
      websocketpp::base64_encode(unsigned char const *, size_t).
    • ๐Ÿ’ฅ BREAKING UTILITY CHANGE : The signature of sha1::calc has changed from
      websocketpp::sha1::calc(void const *, int, unsigned char *) to
      websocketpp::sha1::calc(void const *, size_t, unsigned char *)
    • ๐Ÿ”‹ Feature : Adds incomplete minimal_server and minimal_client configs that
      ๐Ÿ— can be used to build custom configs without pulling in the dependencies of
      core or core_client. These configs will offer a stable base config to
      future-proof custom configs.
    • ๐Ÿ‘Œ Improvement : Core library no longer has std::iostream as a dependency.
      ๐ŸŒฒ std::iostream is still required for the optional iostream logging policy and
      iostream transport.
    • ๐Ÿ› Bug : C++11 Chrono support was being incorrectly detected by the boost_config
      header. Thank you Max Dmitrichenko for reporting and a patch.
    • ๐Ÿ› Bug : use of std::put_time is now guarded by a unique flag rather than a
      chrono library flag. Thank you Max Dmitrichenko for reporting.
    • ๐Ÿ› Bug : Fixes non-thread safe use of std::localtime. #347 #383
    • Compatibility : Adjust usage of std::min to be more compatible with systems
      that define a min(...) macro.
    • Compatibility : Removes unused parameters from all library, test, and example
      code. This assists with those developing with -Werror and -Wunused-parameter
      #376
    • Compatibility : Renames ntohll and htonll methods to avoid conflicts with
      platform specific macros. #358 #381, #382 Thank you logotype, unphased,
      svendjo
    • Cleanup : Removes unused functions, fixes variable shadow warnings, normalizes
      โœ… all whitespace in library, examples, and tests to 4 spaces. #376