You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					306 lines
				
				9.5 KiB
			
		
		
			
		
	
	
					306 lines
				
				9.5 KiB
			| 
											7 years ago
										 | Metadata-Version: 1.2
 | ||
|  | Name: websocket-client
 | ||
|  | Version: 0.55.0
 | ||
|  | Summary: WebSocket client for Python. hybi13 is supported.
 | ||
|  | Home-page: https://github.com/websocket-client/websocket-client.git
 | ||
|  | Author: liris
 | ||
|  | Author-email: liris.pp@gmail.com
 | ||
|  | License: BSD
 | ||
|  | Description: =================
 | ||
|  |         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
 | ||
|  |         =======
 | ||
|  |         
 | ||
|  |          - BSD
 | ||
|  |         
 | ||
|  |         Installation
 | ||
|  |         ============
 | ||
|  |         
 | ||
|  |         This module is tested on Python 2.7 and Python 3.4+.
 | ||
|  |         
 | ||
|  |         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 depends on
 | ||
|  |         
 | ||
|  |          - six
 | ||
|  |          - backports.ssl_match_hostname for Python 2.x
 | ||
|  |         
 | ||
|  |         Performance
 | ||
|  |         -----------
 | ||
|  |         
 | ||
|  |         The "send" and "validate_utf8" methods are too slow on pure python. If you want to get better performace, please install both numpy and wsaccel.
 | ||
|  |         
 | ||
|  |         
 | ||
|  |         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)
 | ||
|  |         
 | ||
|  |         
 | ||
|  |         
 | ||
|  |         Examples
 | ||
|  |         ========
 | ||
|  |         
 | ||
|  |         Long-lived connection
 | ||
|  |         ---------------------
 | ||
|  |         This example is similar to how WebSocket code looks in browsers using JavaScript.
 | ||
|  |         
 | ||
|  |         .. code:: 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_message = on_message,
 | ||
|  |                                           on_error = on_error,
 | ||
|  |                                           on_close = on_close)
 | ||
|  |                 ws.on_open = on_open
 | ||
|  |                 ws.run_forever()
 | ||
|  |         
 | ||
|  |         
 | ||
|  |         
 | ||
|  |         Short-lived one-off send-receive
 | ||
|  |         --------------------------------
 | ||
|  |         This is if you want to communicate a short message and disconnect immediately when done.
 | ||
|  |         
 | ||
|  |         .. 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),))
 | ||
|  |         
 | ||
|  |         
 | ||
|  |         More advanced: Custom class
 | ||
|  |         ---------------------------
 | ||
|  |         You can also write your own class for the connection, if you want to handle the nitty-gritty details yourself.
 | ||
|  |         
 | ||
|  |         .. code:: python
 | ||
|  |         
 | ||
|  |             import socket
 | ||
|  |             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, 1),), class_=MyWebSocket)
 | ||
|  |         
 | ||
|  |         
 | ||
|  |         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://example.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
 | ||
|  |         
 | ||
|  | Keywords: websockets
 | ||
|  | Platform: UNKNOWN
 | ||
|  | Classifier: Development Status :: 4 - Beta
 | ||
|  | Classifier: License :: OSI Approved :: BSD License
 | ||
|  | 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: 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.*
 |