跳转到主要内容

Python的WebSocket客户端。支持hybi-13。

项目描述

=================
websocket-client
=================

websocket-client模块是Python的WebSocket客户端。它提供WebSocket的低级API。所有API都是同步函数。

websocket-client只支持hybi-13。

注意
============

在版本0.14.0中,我们进行了重大更改。
所以,请仔细测试。


许可证
============

- LGPL

安装
=============

此模块已在Python 2.7和Python 3.x上进行了测试。

输入“python setup.py install”或“pip install websocket-client”进行安装。

此模块依赖于

- six
- backports.ssl_match_hostname(Python 2.x)

Python 3如何
===========================

现在,从版本0.14.0开始,我们支持单源代码的Python 3。感谢,@battlemidget和@ralphbean。

HTTP代理
=============

支持通过http代理访问WebSocket。
代理服务器必须允许“CONNECT”方法到WebSocket端口。
默认squid设置是“只允许连接HTTPS端口”。

当前websocket-client的WebSocket客户端实现正在使用“CONNECT”方法通过代理。

示例
=============

低级API示例:

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()

如果您想自定义套接字选项,请设置sockopt。

sockopt示例

from websocket import create_connection
ws = create_connection("ws://echo.websocket.org/".
sockopt=((socket.IPPROTO_TCP, socket.TCP_NODELAY),) )


JavaScript WebSocket-like API示例:

import websocket
import thread
import time

def on_message(ws, message)
print message

def on_error(ws, error)
打印错误

def on_close(ws)
打印 "### 关闭 ###"

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()
打印 "线程终止..."
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()


wsdump.py
============

wsdump.py 是一个简单的 WebSocket 测试(调试)工具。

echo.websocket.org 的示例:

$ wsdump.py ws://echo.websocket.org/
按 Ctrl+C 退出
> Hello, WebSocket
< Hello, WebSocket
> 你好吗?
< 你好吗?

用法
---------

用法:
wsdump.py [-h] [-v [VERBOSE]] ws_url

WebSocket 简单转储工具

位置参数
ws_url WebSocket URL。例如:ws://echo.websocket.org/

可选参数
-h, --help 显示此帮助信息并退出
WebSocketApp
-v VERBOSE, --verbose VERBOSE 设置详细模式。如果设置为 1,则显示操作码。如果设置为 2,则启用 WebSocket 模块的跟踪

示例:

$ wsdump.py ws://echo.websocket.org/
$ wsdump.py ws://echo.websocket.org/ -v
$ wsdump.py ws://echo.websocket.org/ -vv

变更日志
============

- v0.15.0

- 修复发送大消息时的异常 (#84)

- v0.14.1

- 修复在 Python2.6 上工作的问题 (#83)

- v0.14.0

- 支持 python 3(#73)
- 支持 IPv6(#77)
- 支持显式 web 代理(#57)
- 在连接方法选项中指定 cookie(#82)

- v0.13.0

- 接收大量数据时出现 MemoryError (~60 MB) (#59)
- 控制分段(ISSUE#55)
- 服务器证书验证(ISSUE#56)
- PyPI tarball 缺少 test_websocket.py(ISSUE#65)
- 负载长度编码错误(ISSUE#58)
- 默认禁用 Nagle 算法(ISSUE#41)
- 在 WebSocketApp 中改进事件循环(ISSUE#63)
- 默认跳过需要互联网访问的测试(ISSUE#66)

- v0.12.0

- 支持 WebSocketApp 的 keep alive(#34)
- 修复一些 SSL 错误(ISSUE#35, #36)
- 修复 "Timing out leaves websocket library in bad state"(ISSUE#37)
- 修复 "WebSocketApp.run_with_no_err() silently eats all exceptions"(ISSUE#38)
- 对于 ws/wss 超时将抛出 WebSocketTimeoutException(ISSUE#40)
- 改进 wsdump 消息(ISSUE#42)
- 支持分段消息(ISSUE#43)
- 修复一些错误

- v0.11.0

- 只记录非正常关闭状态(ISSUE#31)
- 修复默认 Origin 不是 URI(ISSUE#32)
- 支持 fileno(ISSUE#33)

- v0.10.0

- 允许设置 WebSocketApp 的 HTTP Header(ISSUE#27)
- 修复 pydoc 中的错误(ISSUE#28)
- 将 socketopt 标志传递给 WebSocket 构造函数(ISSUE#29)
- WebSocket.send 在长数据失败(ISSUE#30)


- v0.9.0

- 允许在 WebSocketApp.send 中设置操作码(ISSUE#25)
- 允许修改 Origin(ISSUE#26)

- v0.8.0

- 许多错误修复
- 一些性能改进

- v0.7.0

- 修复读取长数据的问题。(ISSUE#12)
- 修复缓冲区大小边界违规

- v0.6.0

- 补丁:UUID4, self.keep_running, mask_key (ISSUE#11)
- 添加 wsdump.py 工具

- v0.5.2

- 修复 Echo App Demo 抛出错误:'NoneType' 对象没有属性 'opcode (ISSUE#10)

- v0.5.1

- 删除无效的打印语句。

- v0.5.0

- 支持 hybi-13 协议。

- v0.4.1

- 修复不正确的自定义头顺序错误(ISSUE#1)

项目详细信息


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

websocket-client-py3-0.15.0.tar.gz (187.7 kB 查看哈希值)

上传时间

由以下组织支持