WebSocket++ v0.3.0 Release Notes

Release Date: 2014-08-09 // over 9 years ago
    • ๐Ÿ”‹ Feature : Adds start_perpetual and stop_perpetual methods to asio transport
      These may be used to replace manually managed asio::io_service::work objects
    • ๐Ÿ”‹ Feature : Allow setting pong and handshake timeouts at runtime.
    • ๐Ÿ”‹ Feature : Allows changing the listen backlog queue length.
    • ๐Ÿ”‹ Feature : Split tcp init into pre and post init.
    • ๐Ÿ”‹ Feature : Adds URI method to extract query string from URI. Thank you Banaan
      for code. #298
    • ๐Ÿ”‹ Feature : Adds a compile time switch to asio transport config to disable
      certain multithreading features (some locks, asio strands)
    • ๐Ÿ”‹ Feature : Adds the ability to pause reading on a connection. Paused connections
      will not read more data from their socket, allowing TCP flow control to work
      without blocking the main thread.
    • ๐Ÿ”‹ Feature : Adds the ability to specify whether or not to use the SO_REUSEADDR
      0๏ธโƒฃ TCP socket option. The default for this value has been changed from true to
      false.
    • ๐Ÿ”‹ Feature : Adds the ability to specify a maximum message size.
    • ๐Ÿ”‹ Feature : Adds close::status::get_string(...) method to look up a human
      readable string given a close code value.
    • ๐Ÿ”‹ Feature : Adds connection::read_all(...) method to iostream transport as a
      convenience method for reading all data into the connection buffer without the
      end user needing to manually loop on read_some.
    • ๐Ÿ‘Œ Improvement : Open, close, and pong timeouts can be disabled entirely by
      setting their duration to 0.
    • ๐Ÿ‘Œ Improvement : Numerous performance improvements. Including: tuned default
      buffer sizes based on profiling, caching of handler binding for async
      reads/writes, non-malloc allocators for read/write handlers, disabling of a
      number of questionably useful range sanity checks in tight inner loops.
    • ๐Ÿ‘Œ Improvement : Cleaned up the handling of TLS related errors. TLS errors will
      now be reported with more detail on the info channel rather than all being
      tls_short_read or pass_through. In addition, many cases where a TLS short
      read was in fact expected are no longer classified as errors. Expected TLS
      short reads and quasi-expected socket shutdown related errors will no longer
      be reported as unclean WebSocket shutdowns to the application. Information
      about them will remain in the info error channel for debugging purposes.
    • ๐Ÿ‘Œ Improvement : start_accept and listen errors are now reported to the caller
      ๐Ÿ‘ป either via an exception or an ec parameter.
    • ๐Ÿ‘Œ Improvement : Outgoing writes are now batched for improved message throughput
      and reduced system call and TCP frame overhead.
    • ๐Ÿ› Bug : Fix some cases of calls to empty lib::function objects.
    • ๐Ÿ› Bug : Fix memory leak of connection objects due to cached handlers holding on to
      reference counted pointers. #310 Thank you otaras for reporting.
    • ๐Ÿ› Bug : Fix issue with const endpoint accessors (such as get_user_agent) not
      compiling due to non-const mutex use. #292 Thank you logofive for reporting.
    • ๐Ÿ› Bug : Fix handler allocation crash with multithreaded io_service.
    • ๐Ÿ› Bug : Fixes incorrect whitespace handling in header parsing. #301 Thank you
      Wolfram Schroers for reporting
    • ๐Ÿ› Bug : Fix a crash when parsing empty HTTP headers. Thank you Thingol for
      reporting.
    • ๐Ÿ› Bug : Fix a crash following use of the stop_listening function. Thank you
      Thingol for reporting.
    • ๐Ÿ› Bug : Fix use of variable names that shadow function parameters. The library
      should compile cleanly with -Wshadow now. Thank you giszo for reporting. #318
    • ๐Ÿ› Bug : Fix an issue where set_open_handshake_timeout was ignored by server
      code. Thank you Robin Rowe for reporting.
    • ๐Ÿ› Bug : Fix an issue where custom timeout values weren't being propagated from
      endpoints to new connections.
    • ๐Ÿ› Bug : Fix a number of memory leaks related to server connection failures. #323
      #333 #334 #335 Thank you droppy and aydany for reporting and patches.
      reporting.
    • Compatibility : Fix compile time conflict with Visual Studio's MIN/MAX macros.
      Thank you Robin Rowe for reporting.
    • ๐Ÿ“š Documentation : Examples and test suite build system now defaults to clang on
      OS X