用于连接到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第三方库


热门话题
java如何将springboot war部署到debian jetty8   java破坏了函数,即使它看起来是正确的   当MockMvc不可自动编译时,java会有选择地从Spring Security向其应用单个过滤器   java AndroidStudio每秒播放n次生成的声音   JavaJBossSeam:继承的方法被拦截了吗?   ScheduledExecutorService中线程默认名称中池号的java含义   在Java中用递归方法实现类Fibonacci的递归   java虚拟路径/文件夹   java即时与ZoneDateTime。转换到另一时区   用GaussLegendre算法在java中逼近Pi   java RecyclerView findFirstVisibleItemPosition()返回1   java根据当前经过身份验证的用户的角色返回不同的JSON对象   java从内部类访问扩展类的方法   Android程序中的Java语法WRT静态方法   可选参数初始化Java字符串文字时出错