| Metadata-Version: 2.0 |
| Name: websocket-client |
| Version: 0.37.0 |
| Summary: WebSocket client for python. hybi13 is supported. |
| Home-page: https://github.com/liris/websocket-client |
| Author: liris |
| Author-email: liris.pp@gmail.com |
| License: LGPL |
| Keywords: websockets |
| Platform: UNKNOWN |
| Classifier: Development Status :: 4 - Beta |
| Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL) |
| Classifier: Programming Language :: Python |
| Classifier: Programming Language :: Python :: 2 |
| Classifier: Programming Language :: Python :: 3 |
| 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-Dist: six |
| |
| ================= |
| websocket-client |
| ================= |
| |
| websocket-client module is WebSocket client for python. This provide the low level APIs for WebSocket. All APIs are the synchronous functions. |
| |
| websocket-client supports only hybi-13. |
| |
| |
| License |
| ============ |
| |
| - LGPL |
| |
| Installation |
| ============= |
| |
| This module is tested on Python 2.7 and Python 3.x. |
| |
| Type "python setup.py install" or "pip install websocket-client" to install. |
| |
| .. CAUTION:: |
| |
| from v0.16.0, we can install by "pip install websocket-client" for python 3. |
| |
| This module depend on |
| |
| - six |
| - backports.ssl_match_hostname for Python 2.x |
| |
| How about Python 3 |
| =========================== |
| |
| Now, we support python 3 on single source code from version 0.14.0. Thanks, @battlemidget and @ralphbean. |
| |
| HTTP Proxy |
| ============= |
| |
| Support websocket access via http proxy. |
| The proxy server must allow "CONNECT" method to websocket port. |
| Default squid setting is "ALLOWED TO CONNECT ONLY HTTPS PORT". |
| |
| Current implementation of websocket-client is using "CONNECT" method via proxy. |
| |
| |
| example |
| |
| .. code:: python |
| |
| import websocket |
| ws = websocket.WebSocket() |
| ws.connect("ws://example.com/websocket", http_proxy_host="proxy_host_name", http_proxy_port=3128) |
| : |
| |
| |
| |
| Example |
| ============= |
| |
| Low Level API example |
| |
| .. code:: 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. |
| |
| sockopt example |
| |
| .. code:: python |
| |
| from websocket import create_connection |
| ws = create_connection("ws://echo.websocket.org/", |
| sockopt=((socket.IPPROTO_TCP, socket.TCP_NODELAY),)) |
| |
| You can also use your own class for the connection. |
| |
| custom connection class example |
| |
| ..code:: python |
| |
| from websocket import create_connection, WebSocket |
| class MyWebSocket(WebSocket): |
| def recv_frame(self): |
| frame = super().recv_frame() |
| print('yay! I got this frame: ', frame) |
| return frame |
| |
| ws = create_connection("ws://echo.websocket.org/", |
| sockopt=((socket.IPPROTO_TCP, socket.TCP_NODELAY),), class_=MyWebSocket) |
| |
| JavaScript websocket-like API example |
| |
| .. code:: python |
| |
| import websocket |
| import 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_message = on_message, |
| on_error = on_error, |
| on_close = on_close) |
| ws.on_open = on_open |
| ws.run_forever() |
| |
| |
| FAQ |
| ============ |
| |
| How to disable ssl cert verification? |
| ---------------------------------------- |
| |
| Please set sslopt to {"cert_reqs": ssl.CERT_NONE}. |
| |
| WebSocketApp sample |
| |
| .. code:: python |
| |
| ws = websocket.WebSocketApp("wss://echo.websocket.org") |
| ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE}) |
| |
| create_connection sample |
| |
| .. code:: python |
| |
| ws = websocket.create_connection("wss://echo.websocket.org", |
| sslopt={"cert_reqs": ssl.CERT_NONE}) |
| |
| WebSocket sample |
| |
| .. code:: python |
| |
| ws = websocket.WebSocket(sslopt={"cert_reqs": ssl.CERT_NONE}) |
| ws.connect("wss://echo.websocket.org") |
| |
| |
| How to disable hostname verification. |
| ---------------------------------------- |
| |
| Please set sslopt to {"check_hostname": False}. |
| (since v0.18.0) |
| |
| WebSocketApp sample |
| |
| .. code:: python |
| |
| ws = websocket.WebSocketApp("wss://echo.websocket.org") |
| ws.run_forever(sslopt={"check_hostname": False}) |
| |
| create_connection sample |
| |
| .. code:: python |
| |
| ws = websocket.create_connection("wss://echo.websocket.org", |
| sslopt={"check_hostname": False}) |
| |
| WebSocket sample |
| |
| .. code:: python |
| |
| ws = websocket.WebSocket(sslopt={"check_hostname": False}) |
| ws.connect("wss://echo.websocket.org") |
| |
| |
| How to enable `SNI <http://en.wikipedia.org/wiki/Server_Name_Indication>`_? |
| --------------------------------------------------------------------------- |
| |
| SNI support is available for Python 2.7.9+ and 3.2+. It will be enabled automatically whenever possible. |
| |
| |
| Sub Protocols. |
| ---------------------------------------- |
| |
| The server needs to support sub protocols, please set the subprotocol like this. |
| |
| |
| Subprotocol sample |
| |
| .. code:: python |
| |
| ws = websocket.create_connection("ws://exapmle.com/websocket", subprotocols=["binary", "base64"]) |
| |
| |
| |
| wsdump.py |
| ============ |
| |
| wsdump.py is simple WebSocket test(debug) tool. |
| |
| sample for echo.websocket.org:: |
| |
| $ wsdump.py ws://echo.websocket.org/ |
| Press Ctrl+C to quit |
| > Hello, WebSocket |
| < Hello, WebSocket |
| > How are you? |
| < How are you? |
| |
| Usage |
| --------- |
| |
| usage:: |
| wsdump.py [-h] [-v [VERBOSE]] ws_url |
| |
| WebSocket Simple Dump Tool |
| |
| positional arguments: |
| ws_url websocket url. ex. ws://echo.websocket.org/ |
| |
| optional arguments: |
| -h, --help show this help message and exit |
| WebSocketApp |
| -v VERBOSE, --verbose VERBOSE set verbose mode. If set to 1, show opcode. If set to 2, enable to trace websocket module |
| |
| example:: |
| |
| $ wsdump.py ws://echo.websocket.org/ |
| $ wsdump.py ws://echo.websocket.org/ -v |
| $ wsdump.py ws://echo.websocket.org/ -vv |
| |
| |
| |