diff options
author | alexv-smirnov <alex@ydb.tech> | 2023-12-01 12:02:50 +0300 |
---|---|---|
committer | alexv-smirnov <alex@ydb.tech> | 2023-12-01 13:28:10 +0300 |
commit | 0e578a4c44d4abd539d9838347b9ebafaca41dfb (patch) | |
tree | a0c1969c37f818c830ebeff9c077eacf30be6ef8 /contrib/python/websocket-client/py2/README.md | |
parent | 84f2d3d4cc985e63217cff149bd2e6d67ae6fe22 (diff) | |
download | ydb-0e578a4c44d4abd539d9838347b9ebafaca41dfb.tar.gz |
Change "ya.make"
Diffstat (limited to 'contrib/python/websocket-client/py2/README.md')
-rw-r--r-- | contrib/python/websocket-client/py2/README.md | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/contrib/python/websocket-client/py2/README.md b/contrib/python/websocket-client/py2/README.md new file mode 100644 index 0000000000..d61578f116 --- /dev/null +++ b/contrib/python/websocket-client/py2/README.md @@ -0,0 +1,136 @@ +[](https://websocket-client.readthedocs.io/) +[](https://github.com/websocket-client/websocket-client/actions/workflows/build.yml) +[](https://codecov.io/gh/websocket-client/websocket-client) +[](https://pepy.tech/project/websocket-client) +[](https://pypi.org/project/websocket_client/) + +# websocket-client + +websocket-client is a WebSocket client for Python. It provides access +to low level APIs for WebSockets. websocket-client implements version +[hybi-13](https://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-13) +of the WebSocket procotol. This client does not currently support the +permessage-deflate extension from +[RFC 7692](https://tools.ietf.org/html/rfc7692). + +## Documentation + +This project's documentation can be found at +[https://websocket-client.readthedocs.io/](https://websocket-client.readthedocs.io/) + +## Contributing + +Please see the [contribution guidelines](https://github.com/websocket-client/websocket-client/blob/master/CONTRIBUTING.md) + +## Installation + +First, install the following dependencies: +- six +- backports.ssl\_match\_hostname for Python 2.x + +You can install the dependencies with the command `pip install six` and +`pip install backports.ssl_match_hostname` + +You can use either `python setup.py install` or `pip install websocket-client` +to install. This module is tested on Python 2.7 and Python 3.4+. Python 3 +support was first introduced in version 0.14.0, but is a work in progress. + +## Usage Tips + +Check out the documentation's FAQ for additional guidelines: +[https://websocket-client.readthedocs.io/en/latest/faq.html](https://websocket-client.readthedocs.io/en/latest/faq.html) + +Known issues with this library include lack of WebSocket Compression +support (RFC 7692) and [minimal threading documentation/support](https://websocket-client.readthedocs.io/en/latest/threading.html). + +## License + +- LGPL version 2.1 + +### Performance + +The `send` and `validate_utf8` methods are very slow in pure Python. You can +disable UTF8 validation in this library (and receive a performance enhancement) +with the `skip_utf8_validation` parameter. If you want to get better +performance, please install both numpy and wsaccel, and import them into your +project files - these other libraries will automatically be used when available. +Note that wsaccel can sometimes cause other issues. + +### Long-lived Connection + +Most real-world WebSockets situations involve longer-lived connections. +The WebSocketApp `run_forever` loop automatically tries to reconnect when a +connection is lost, and provides a variety of event-based connection controls. +The project documentation has +[additional examples](https://websocket-client.readthedocs.io/en/latest/examples.html) + +```python +import websocket +try: + import thread +except ImportError: + import _thread as thread +import time + +def on_message(ws, message): + print(message) + +def on_error(ws, error): + print(error) + +def on_close(ws): + print("### closed ###") + +def on_open(ws): + def run(*args): + for i in range(3): + time.sleep(1) + ws.send("Hello %d" % i) + time.sleep(1) + ws.close() + print("thread terminating...") + thread.start_new_thread(run, ()) + +if __name__ == "__main__": + websocket.enableTrace(True) + ws = websocket.WebSocketApp("ws://echo.websocket.org/", + on_open = on_open, + on_message = on_message, + on_error = on_error, + on_close = on_close) + + ws.run_forever() +``` + +### Short-lived Connection + +This is if you want to communicate a short message and disconnect +immediately when done. For example, if you want to confirm that a WebSocket +server is running and responds properly to a specific request. +The project documentation has +[additional examples](https://websocket-client.readthedocs.io/en/latest/examples.html) + +```python +from websocket import create_connection +ws = create_connection("ws://echo.websocket.org/") +print("Sending 'Hello, World'...") +ws.send("Hello, World") +print("Sent") +print("Receiving...") +result = ws.recv() +print("Received '%s'" % result) +ws.close() +``` + +If you want to customize socket options, set sockopt, as seen below: + +```python +from websocket import create_connection +ws = create_connection("ws://echo.websocket.org/", + sockopt=((socket.IPPROTO_TCP, socket.TCP_NODELAY),)) +``` + +### Acknowledgements + +Thanks to @battlemidget and @ralphbean for helping migrate this project to +Python 3. |