123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- Metadata-Version: 2.1
- Name: websocket-client
- Version: 0.59.0
- Summary: WebSocket client for Python with low level API options
- Home-page: https://github.com/websocket-client/websocket-client.git
- Author: liris
- Author-email: liris.pp@gmail.com
- License: LGPL version 2.1
- Download-URL: https://github.com/websocket-client/websocket-client/releases
- Project-URL: Documentation, https://websocket-client.readthedocs.io/
- Project-URL: Source, https://github.com/websocket-client/websocket-client/
- Keywords: websockets client
- Platform: UNKNOWN
- Classifier: Development Status :: 4 - Beta
- Classifier: License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 2
- Classifier: Programming Language :: Python :: 2.6
- Classifier: Programming Language :: Python :: 2.7
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3.4
- Classifier: Programming Language :: Python :: 3.5
- Classifier: Programming Language :: Python :: 3.6
- Classifier: Programming Language :: Python :: 3.7
- Classifier: Programming Language :: Python :: 3.8
- Classifier: Programming Language :: Python :: 3.9
- Classifier: Operating System :: MacOS :: MacOS X
- Classifier: Operating System :: POSIX
- Classifier: Operating System :: Microsoft :: Windows
- Classifier: Topic :: Internet
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
- Classifier: Intended Audience :: Developers
- Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
- Description-Content-Type: text/markdown
- Requires-Dist: six
- [![docs](https://readthedocs.org/projects/websocket-client/badge/?style=flat)](https://websocket-client.readthedocs.io/)
- [![Build Status](https://github.com/websocket-client/websocket-client/actions/workflows/build.yml/badge.svg)](https://github.com/websocket-client/websocket-client/actions/workflows/build.yml)
- [![codecov](https://codecov.io/gh/websocket-client/websocket-client/branch/master/graph/badge.svg?token=pcXhUQwiL3)](https://codecov.io/gh/websocket-client/websocket-client)
- [![PyPI Downloads](https://pepy.tech/badge/websocket-client)](https://pepy.tech/project/websocket-client)
- [![PyPI version](https://img.shields.io/pypi/v/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.
|