ChangeLog ============ - 0.57.0 - wsdump: Fix --headers option (#589) - Fix getting 400 bad request with long proxy authorization string (#587) - Fix for errors that occur when closing websocket from another thread (#586) - avoid calling repr(data) if tracing is not enabled (#584) - Fixed typo (#579) - Create dummy `ssl` object (#577) - Show compressed text messages in wsdump.py (#576) - Resolve issue opening socket to intranet on Windows 10 with no proxy settings but behind proxy (#573) - Expose http connection header to user (#566) - Improve the readability of HTTP status codes. (#553) - fix the compatible issue with gevent+dnspython (#547) - v should be checked for emptry string before splitting it (#539) - _handshake: hasattr checks on six before accessing the values (#533) - 0.56.0 - Don't retry sockets with timeout set to 0(#536) - 0.55.0 - Add response headers in WebSocketBadStatusException (#501) - Manually assigning WebSocket-Version (#506) - SSL socket handling fix (#474) - Let setup.py use the same license as LICENSE file (#517) - Ensure that "timeout" is passed down, when calling WebSocket.connect() (#513) - Retry connect on "Interrupted system call" (#528) - 0.54.0 - Change license from LGPL to BSD. - Status return for WebSocketApp.run_forever() (#492) - Handle redirects in handshake (#491) - Make proxy_type option available in WebSocketApp.run_forever() (#486) - Fix typo in supress_origin (#485) - WebSocketApp's on_close never emits status code or reason (#479) - 0.53.0 - on_open() missing 1 required positional argument: 'ws' (#471) - 0.52.0 - fixed callback argument in _app.py (#468) - Fixing none compare bug in run_forever (#472) - Fix NoneType bug introduced by #386 fix (#476) - 0.51.0 - revert "WebSocketApp class to make it inheritable (#442)" because of breaking the compatibily - 0.50.0 - fixed pong before ping (#461) - pass proper arguments to method callbacks (#462) - 0.49.0 - WebSocketApp class to make it inheritable (#442) - Add option to disable sending the Origin header (#459) - Websocket.close() meaning of "close status: XXXXX" (#414) - Enable multithreading protection with ping_interval (#448) - reset WebsocketApp.sock (#450) - websocket.enableTrace not working (#455) - AttributeError: 'module' object has no attribute 'NullHandler' (#443) - WebSocketBadStatusException "not enough arguments for format string" (#454) - handshake should deal with None in headers (#432) - 0.48.0 - Add NullHandler to logger to fix python 2 issue. (#400) - Fix the issue that websocket status message may not present (#403) - Socket error not raised in nested try except in python2 (#408) - Load system default certificates if none are given (#415) - Fix waiting forever on ping/pong timeout (#411) - socks5 via pysocks support (#417) - v0.47.0 breaks ability to stop stream with `run_forever` (#410) - _http.py: fix windows proxy error due to socktype (#427) - 0.47.0 - Fix socket constructor in _open_socket to use all relevant variables from getaddrinfo. (#383) - .send() method is very slow (#340) - cross-platform aync multi-client solution (#375) - Fix detecting timeouts with SSL in recv (#387) - Fix WebSocketApp does not poll for data correctly when using SSL (#384) - Fix Infinite ping/pong timeouts in WebSocketApp.run_forever (#395) - Added status message when HTTP can't be upgraded to WS (#399) - 0.46.0 - fixed OSError on windows (#370) - fixed invalid character (#379) - 0.45.0 - change license to LGP v2.1 - allow reuse of WebsocketApp.run_forever (#365) - Update example for python3 (#360) - add lock to recv function (#356) - Parse close frame response correctly when reason present (#354) - Fix SSL: SSLV3_ALERT_HANDSHAKE_FAILURE on Debian Stretch (#353) - Wrap socket.gaierror with subclass of WebsocketException (#352) - Resolve a proxy issue and a connection error (#345) - Allow empty Host header value (#369) - Fix undefined variable (#347) - fix: getting a value with the key 'ca_certs' in sslopt dict (#326) - 0.44.0 -renames key in sslopt dict (#326) - 0.43.0 - Unkown kwarg 'ca_cert' when calling ssl wrap_socket() (#326) - Race condition in WebSocket ping/pong (#327) - 0.42.0 - Implement simple cookie jar(#292) - fix: when using pppoe redial will block.(#301) - Fix insecure_pythons list in setup.py(#304) - Support WEBSOCKET_CLIENT_CA_BUNDLE being directory(#307) - WebSocketPayloadException under high traffic and limited network connection(#306) - Not working --nocert parameter in wsdump.py(#315) - Avoid the app to block on close on certain systems (#320) - Fix warning is not defined. (#323) - 0.41.0 - move to repository to https://github.com/websocket-client/websocket-client.git - _send_ping warning fails due to missing reference in _logging.__all__ (#294) - 0.40.0 - Fix opcode -> op_code (#286) - 0.39.0 - Shuffled around example code (#256) - _send_ping graceful error handling (#262) - Allow closing WebSocketApp with status/reason/timeout (#265) - Support universal wheels (#267) - _url: Added subnet IP address matching in no_proxy host detection (#270) - fixed Incorrect encoding in continued messages python3 (#261) - Pass headers for websocket handshake (#271) - setup.py: Import `logging` before calling it. (#272) - Implemented close code 1014 (#273) - Support CA bundle specified by environment variable (#279) - Response header values should not be converted to lower case (#264) - 0.38.0 - Exclude port 443 from host http header (#248) - Cleanup code (#249) - Modify a code block directive in README (#250) - fixed ping/pong timeouet (#253) - 0.37.0 - fixed failure that `websocket.create_connection` does not accept `origin` as a parameter (#246 ) - 0.36.0 - added support for using custom connection class (#235) - use Named logger (#238) - implement ping/pong timeout (#241) - Corrects the syntax highlight code (#243) - fixed failure to join thread before it is started (#242) - 0.35.0 - Prints timings in console (#217) - use inspect.getfullargspec with Python 3.x (#219) - Check that exception message is actually a string before trying for substring check (#224) - Use pre-initialized stream socket (#226) - fixed TypeError: cafile, capath and cadata cannot be all omitted (#227) - 0.34.0 - Change import style (#203) - fix attribute error on the older python. (#215) - 0.33.0 - fixed timeout+ssl error handling bug on python 2.7.10 (#190) - add proxy support to wsdump.py (#194) - use wsaccel if available (#193) - add support for ssl cert chains to support client certs (#195) - fix string formatting in exception (#196) - fix typo in README.rst (#197) - introduce on_data callback to pass data type. (#198) - WebSocketBadStatusException for Handshake error (#199) - set close timeout (#192) - Map dict to headers list (#204) - support client certification (#207) - security improvement during handshake (#211) - improve logging of error from callback (#212) - 0.32.0 - fix http proxy bug (#189) - 0.31.0 - Avoid deprecated BaseException.message (#180) - Add travis builds (#182) - fixed wsdump to work with piped input (#183) - fixed output of wsdump.py with python3 (#185) - add raw mode to wsdump.py (#186) - 0.30.0 - fixed if client is behind proxy (#169) - support SNI for python 2.7.9+ and 3.2+ (#172) - update Host HTTP header by user. (#171) - fix typo for isEnabledFor (#173) - can set verify_mode to CERT_NONE when check_hostname is enabled.(#175) - make websockets iterable (#178) - 0.29.0 - fixed ssl socket bug - 0.28.0 - Fix erroneous argument shadowing(#168) - 0.27.0 - remove unittest2 requirements for python 2.6 (#156) - fixed subprotocol case during header validation (#158) - get response status and headers (#160) - fix out-of-memory due to fragmentation when receiving a very large frame(#163) - fix error if the payload data is nothing.(#166) - refactoring. - 0.26.0 - all WebSocketException provide message string (#152) - fixed tests fail when not connected to the network (#155) - Add command line options and handle closed socket to wsdump.py (#153) - 0.25.0 - fixed for Python 2.6(#151) - 0.24.0 - Supporting http-basic auth in WebSocketApp (#143) - fix failure of test.testInternalRecvStrict(#141) - skip utf8 validation by skip_utf8_validation argument (#137) - WebsocketProxyException will be raised if we got error about proxy.(#138) - 0.23.0 - Remove spurious print statement. (#135) - 0.22.0 - Fix not thread-safe of Websocket.close() (#120) - Try to get proxy info from environment if not explicitly provided (#124) - support proxy basic authentication. (#125) - Fix NoneType exception at WebsocketApp.send (#126) - not use proxy for localhost (#132) - 0.21.0 - Check for socket before attempting to close (#115) - Enable turning off SSL verification in wsdump.py(#116) - Enable to set subprotocol(#118) - Better support for Autobahn test suite (http://autobahn.ws/testsuite) (#117) - v0.20.0 - fix typo. - v0.19.0 - suppress close event message(#107) - detect socket connection state(#109) - support for code and reason in on_close callback(#111) - continuation frame handling seems suspicious(#113) - v0.18.0 - allow override of match_hostname usage on ssl (#105) - v0.17.0 - can't set timeout on a standing websocket connection (#102) - fixed local variable 'error' referenced before assignment (#102, #98) - v0.16.0 - lock some method for multithread. (#92) - disable cert verification. (#89) - v0.15.0 - fixed exception when send a large message (#84) - v0.14.1 - fixed to work on Python2.6 (#83) - v0.14.0 - Support python 3(#73) - Support IPv6(#77) - Support explicit web proxy(#57) - specify cookie in connect method option(#82) - v0.13.0 - MemoryError when receiving large amount of data (~60 MB) at once(ISSUE#59) - Controlling fragmentation(ISSUE#55) - server certificate validation(ISSUE#56) - PyPI tarball is missing test_websocket.py(ISSUE#65) - Payload length encoding bug(ISSUE#58) - disable Nagle algorithm by default(ISSUE#41) - Better event loop in WebSocketApp(ISSUE#63) - Skip tests that require Internet access by default(ISSUE#66) - v0.12.0 - support keep alive for WebSocketApp(ISSUE#34) - fix some SSL bugs(ISSUE#35, #36) - fix "Timing out leaves websocket library in bad state"(ISSUE#37) - fix "WebSocketApp.run_with_no_err() silently eats all exceptions"(ISSUE#38) - WebSocketTimeoutException will be raised for ws/wss timeout(ISSUE#40) - improve wsdump message(ISSUE#42) - support fragmentation message(ISSUE#43) - fix some bugs - v0.11.0 - Only log non-normal close status(ISSUE#31) - Fix default Origin isn't URI(ISSUE#32) - fileno support(ISSUE#33) - v0.10.0 - allow to set HTTP Header to WebSocketApp(ISSUE#27) - fix typo in pydoc(ISSUE#28) - Passing a socketopt flag to the websocket constructor(ISSUE#29) - websocket.send fails with long data(ISSUE#30) - v0.9.0 - allow to set opcode in WebSocketApp.send(ISSUE#25) - allow to modify Origin(ISSUE#26) - v0.8.0 - many bug fix - some performance improvement - v0.7.0 - fixed problem to read long data.(ISSUE#12) - fix buffer size boundary violation - v0.6.0 - Patches: UUID4, self.keep_running, mask_key (ISSUE#11) - add wsdump.py tool - v0.5.2 - fix Echo App Demo Throw Error: 'NoneType' object has no attribute 'opcode (ISSUE#10) - v0.5.1 - delete invalid print statement. - v0.5.0 - support hybi-13 protocol. - v0.4.1 - fix incorrect custom header order(ISSUE#1)