用于连接到crossbar.io http网桥服务的库。

crossbarhttp3的Python项目详细描述


https://travis-ci.org/jose-lpa/crossbarhttp3.svg?branch=masterhttps://codecov.io/gh/jose-lpa/crossbarhttp3/branch/master/graph/badge.svghttps://img.shields.io/pypi/v/crossbarhttp3.svghttps://img.shields.io/pypi/l/crossbarhttp3.svg

提供访问crossbar.io http网桥服务方法的模块

原始包的叉由Eric Chapman at The HQ,现在支持 Python2.6、2.7和3+版本。

安装

使用pip:

安装crossbar http 3
pip 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下发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Eclipse中使用多个调用在一行上打印java   javajackson序列化问题。只有同一实体的第一个对象可以很好地序列化   Java中Deflate函数的等价充气   使用customlitview的java Android actionbar搜索   java“<T>T get()”是什么意思?(它有用吗?)   目标c使用CommonCrypto使用AES256加密,使用OpenSSL或Java解密   java在运行时更新资源文件   fileinputstream在java中访问并将数据写入现有文件   带集群的java Android Mapbox我希望每个功能都有不同的标记图像   java JDK8>JDK10:PKIX路径生成失败:SunCertPathBuilderException:找不到请求目标的有效证书路径   java使用Hk2生成具有指定构造函数参数的实例   为什么这个系统。出来Java中的println()打印到控制台?   java目录和文件名连接不起作用   使用mockito和通配符绘图的java