| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fix pytype error:
File "websocket/_wsdump.py", line 107, in <module>: Overriding method signature mismatch [signature-mismatch]
Base signature: 'def code.InteractiveConsole.raw_input(self, prompt: str = ...) -> str'.
Subclass signature: 'def RawInput.raw_input(self, prompt) -> Any'.
Parameter 'prompt' must have a default value.
* Fix pytype error:
File "websocket/tests/echo-server.py", line 18, in main: Function Serve.__init__ was called with the wrong arguments [wrong-arg-types]
Expected: (self, ws_handler, host, port: Optional[int] = ..., ...)
Actually passed: (self, ws_handler, host, port: str)
* Fix undefined variable error found by pytype:
File "compliance/test_fuzzingclient.py", line 57, in <module>: Name 'case' is not defined [name-error]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Refactor and fix reconnect and ping
- Dispatcher: do not reconnect in loop
- Avoid reconnect in recursion and hit maximum recursion depth
- Close websocket before reconnect to avoid unclosed ssl.SSLSocket warnings
- Start ping thread on socket connect
- Stop ping thread on socket disconnect
- Add reconnect test
- Add callback exception test
* Remove duplicate function
* Also check passed app in testCallbackException
* Test exception in callback method
Co-authored-by: Jan Schneider <j.schneider@uib.de>
Co-authored-by: engn33r <engn33r@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* create_dispatcher() w/ is_ssl determined by url instead of sslopt
* added .lower() (per @rm-you's suggestion)
* create_dispatcher() w/ parse_url()-derived is_ssl
* Fix failing test, missing wss
Co-authored-by: engn33r <engn33r@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* rel example
* tweaked rel example for linter
* added rel note to examples.rst
* slightly more compact example
* added example header
* matched wording
* _socket.recv(): _recv() except socket.error - changed or to and; added except TimeoutError - raise WebSocketTimeoutException
* _app - custom dispatcher check_callback() integration (and fixed pyevent compatibility): WrappedDispatcher (for use with generic event dispatchers such as pyevent and rel); create_dispatcher() accepts dispatcher kwarg (default None), and if it is specified, returns a WrappedDispatcher; use create_dispatcher() (passing specified dispatcher if any) every time (regardless of dispatcher specification)
* Add clarifying comment, rerun CI tests
* Add space to make linter happy
* working reconnect
* rmed logs
* added _logging.warning() disconnected/reconnected notifications to handleDisconnect()
* moved connect notification and dispatcher.read() (if doread kwarg [default False] is True) to setSock() (prevents those lines from running on ConnectionRefusedError)
* run_forever(): reconnect kwarg now specifies sleep() time (defualt 5)
* handleDisconnect(): fixed log msg
* run_forever() refactor: stabilized stack frame count (at least in rel mode); added stack frame count to disconnect (warning) log; grossly oversimplified ;)
* dispatcher simplification via DispatcherBase and DispatcherBase/WrappedDispatcher.timeout()
* _logging: info(); enableTrace() supports level kwarg (default "DEBUG")
* handleDisconnect() uses info() log
* Fix linting errors
* moved timeout() from Dispatcher to DispatcherBase (thus also applying to SSLDispatcher)
* reconnect()s for DispatcherBase (uses while loop) and WrappedDispatcher (uses timeout()); setSock() reconnecting (default False) kwarg - if reconnecting, skip handleDisconnect(); handleDisconnect() calls dispatcher.reconnect()
* custom_dispatcher switch in handleDisconnect()
* WrappedDispatcher constructor registers keyboard interrupt signal
* DispatcherBase.reconnect(): wrapped while loop in KeyboardInterrupt try/except
* fixed lint errors
* _app: RECONNECT (default 5) and setReconnect() setter; WebSocketApp.run_forever() reconnect kwarg defaults to RECONNECT
* tests.test_app: ws.setReconnect(0) (may fix test stall issue)
* oops, added setReconnect import to websocket __init__
* blank line for linter
* linter line
* added rel to setup extras_require{test}[]
* adjusted testRunForeverDispatcher() to use rel (including dispatch())
* setup: moved rel dep from extras_require{test}[] to tests_require[]
* meh trying install_requires[] (tests_require[] depped??)
* set RECONNECT (run_forever() reconnect kwarg default) to 0 (can be altered with setReconnect()) to preserve old (non-reconnecting) default behavior for existing integrations
* rmed rel from install_requires[] (only added for tests, and was not working...)
* test_app: rmed ws.setReconnect(0) (0 is new default)
* run_forever() reconnect->RECONNECT fallback in func instead of kwarg default
* test_app: disabled rel import (unsure how to set up test dependency) and testRunForeverDispatcher() (also not working previously afaik)
* linter fixes
* linter comment spaces
* run_forever() returns False to pass testRunForeverTeardownCleanExit test
* run_forever() returns False unless error (handleDisconnect() changes to True before calling on_error callback)
* rval->self.has_errored
Co-authored-by: engn33r <engn33r@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
| |
* Allow passing `http_proxy_timeout` to `run_forever`
* Normalize docstring
* fix flake8 lint
Co-authored-by: Adam Wojtczak <adam.wojtczak@cybercare.cc>
Co-authored-by: engn33r <engn33r@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
called (#788)
* fix!: `WebSocketApp.run_forever()` returning `None` after `close()` is called
BREAKING CHANGE: the return value of `WebSocketApp.run_forever()` will no longer return the (undocumented) `None` value.
* fix(tests): replace the defunct `wss://stream.meetup.com/2/rsvps` with `wss://api.bitfinex.com/ws/2` in several tests
* test: added two new local server tests to cover the changes in #785
* Remove newline to fix lint error
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* Use bytes literal instead of bytes()
* Add UTF-8 suggestion to comments
|
|
|
| |
Remove implied and redundant object class type declarations
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The recent addition of python-socks required it to be a dependency. This
was mentioned in #728. Additional changes were made to prevent python-socks from becoming a required dependency for every install, so now it is only required for SOCKS proxy usage.
Additionally, because echo.websockets.org was experiencing downtime
issues during this fix, echo.websockets.org was replaced in unit tests with a local echo server from the Python websockets library. This should speed up tests, avoid test errors cause by external website downtime, and reduce traffic to echo.websocket.org caused by this project.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Due to the ongoing license change process in #697, PR #417 from @jhtitor
needed to be removed. PR #417 added SOCKS proxy support using
PySocks, which is the most popular Python SOCKS proxy and is
used by libraries such as 'requests' and 'urllib3'. However, as of
mid-2021, PySocks has not seen any activity since Sep 2019 and has
several open issues. Because PySocks does not appear to be maintained
and has no forks that are actively trying to replace the old
repository, python-socks may be a better choice going forward. Although
python-socks is a newer project, it has good code coverage and recent commits from earlier this year (2021).
|
|
|
|
|
| |
This fixes e.g. credentials containing a `@` escaped as `%40`.
Closes #722.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|