| ChangeLog |
| ============ |
| |
| - 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) |