用于连接到crossbar.io http网桥服务的库。
crossbarhttp3的Python项目详细描述
提供访问crossbar.io http网桥服务方法的模块
原始包的叉由Eric Chapman at The HQ,现在支持 Python2.6、2.7和3+版本。
安装
使用pip:
安装crossbar http 3pip install crossbarhttp3
基本用法
呼叫
要调用crossbar http网桥,请执行以下操作:
client=Client('http://127.0.0.1/call')result=client.call('com.example.add',2,3,offset=10)
这将调用ApplicationSession object的以下add_something方法:
fromautobahn.twisted.wampimportApplicationSessionfromtwisted.internet.deferimportinlineCallbacksclassMyComponent(ApplicationSession):@inlineCallbacksdefonJoin(self,details):defadd_something(x,y,offset=0):print('Add was called')returnx+y+offsetyieldself.register(add_something,'com.example.add')
发布
要发布到crossbar http网桥,请执行以下操作:
client=Client('http://127.0.0.1/publish')result=client.publish('com.example.event',event='new event')
在ApplicationSession类中实现的接收订阅将 如下所示:
fromautobahn.twisted.wampimportApplicationSessionfromtwisted.internet.deferimportinlineCallbacksclassMyComponent(ApplicationSession):@inlineCallbacksdefonJoin(self,details):defsubscribe_something(event=None,**kwargs):print('Publish was called with event %s'%event)yieldself.subscribe(subscribe_something,'com.example.event')
密钥/秘密
对于定义了密钥和机密的网桥服务,只需包含密钥 以及客户机实例化的秘密。
client=Client('http://127.0.0.1/publish',key='key',secret='secret')
其他选项
客户机实例化中还有两个选项:
- timeout:用于指定对crossbar.io节点的空闲请求将被解除(超时)的秒数。默认为None,这意味着将使用全局默认超时设置。
- silently:如果设置为True,则客户端将以None,的形式返回crossbar.io节点的任何失败请求,而不会引发任何异常。默认为False,这意味着所有失败都会引发相应的异常。
异常
库将抛出以下异常。注意所有例外情况 来自ClientBaseException的子类,因此如果您没有 需要粒度。
- ClientBadUrl-指定的url不是http网桥服务
- ClientBadHost-指定的主机名正在拒绝连接
- ClientMissingParams-调用缺少参数
- ClientSignatureError-签名不匹配
- ClientNoCalleeRegistered-被调用方未在路由器上为指定过程注册
- ClientCallRuntimeError-过程触发了异常
贡献
欢迎对库进行所有错误修复或改进。
若要进行贡献,请分叉repo并向^{tt16}提交一个pull请求$ 分支。请尝试遵循以下基本编码规则:
- 总是包括一些新代码的单元测试或者你修正的错误。或者,如果必要的话,更新现有的单元测试。
- 坚持PEP-8风格。
测试
为了正确测试crossbar http 3,您必须在 在本地主机端口8001中运行的HTTP网桥模式。你可以自己做如果 你需要它,但是另外已经有一个Docker image已经准备好了,所以你 不用麻烦了。
要使用该图像并在一切正常的情况下提升Docker容器,请 确定有Docker installed并执行此命令:
docker run -t -p 8001:8001 --name crossbar-bridge joselpa/crossbar-http-bridge:0.2
然后您可以按常规方式运行单元测试:
python setup.py test
许可证
在MIT License下发布。