跳转到主要内容

用于连接到Crossbar.io HTTP桥接服务的库。

项目描述

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

提供访问Crossbar.io HTTP桥接服务方法的模块

是The HQ的Eric Chapman原始包的分支,现在支持Python 2.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)

这将调用以下 add_something 方法的一个 ApplicationSession对象

from autobahn.twisted.wamp import ApplicationSession
from twisted.internet.defer import inlineCallbacks


class MyComponent(ApplicationSession):
    @inlineCallbacks
    def onJoin(self, details):

        def add_something(x, y, offset=0):
            print('Add was called')
            return x + y + offset

        yield self.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类中实现的接收订阅看起来像这样

from autobahn.twisted.wamp import ApplicationSession
from twisted.internet.defer import inlineCallbacks


class MyComponent(ApplicationSession):
    @inlineCallbacks
    def onJoin(self, details):

        def subscribe_something(event=None, **kwargs):
            print('Publish was called with event %s' % event)

        yield self.subscribe(subscribe_something, 'com.example.event')

密钥/密钥

对于定义了密钥和密钥的桥接服务,只需在客户端实例化时包含密钥和密钥即可。

client = Client('http://127.0.0.1/publish', key='key', secret='secret')

其他选项

在客户端实例化中还有两个其他选项可用

  • timeout:允许您指定从Crossbar.io节点取消挂起的空闲请求的秒数(超时)。默认为None,表示将使用全局默认超时设置。

  • silently:如果设置为True,客户端将任何失败的Crossbar.io节点请求返回为None而不会引发任何异常。默认为False,表示所有失败都将引发相应的异常。

异常

库将抛出以下异常。请注意,所有异常都是ClientBaseException的子类,因此如果您不希望有更细粒度的控制,可以直接捕获该异常。

  • ClientBadUrl - 指定的URL不是HTTP桥接服务

  • ClientBadHost - 指定的主机名拒绝连接

  • ClientMissingParams - 调用缺少参数

  • ClientSignatureError - 签名不匹配

  • ClientNoCalleeRegistered - 被调用者未在路由器上注册指定的过程

  • ClientCallRuntimeError - 过程触发了异常

贡献

欢迎所有对该库的修复或改进。

要贡献,请将该仓库分叉并提交一个拉取请求到develop分支。请尽量遵循以下基本编码规则

  • 始终为编写的新代码或修复的bug包含一些单元测试。或者,如有必要,更新现有的单元测试。

  • 遵循PEP-8样式。

测试

为了正确测试Crossbar HTTP 3,您必须在本地主机端口8001上运行HTTP桥接模式的Crossbar.io节点。如果您需要,可以自己操作,但否则已经有一个Docker镜像准备好了,所以您不需要麻烦。

要使用该镜像并启动一个包含一切工作的Docker容器,请确保您已经安装了Docker,并执行以下命令

docker run -t -p 8001:8001 --name crossbar-bridge joselpa/crossbar-http-bridge:0.2

然后您可以通过常规方式运行单元测试

python setup.py test

许可证

MIT许可证下发布。

项目详情


发布历史 发布通知 | RSS源

下载文件

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

源分发

crossbarhttp3-1.1.tar.gz (5.9 kB 查看哈希)

上传时间

构建分发

crossbarhttp3-1.1-py2.py3-none-any.whl (5.8 kB 查看哈希)

上传时间 Python 2 Python 3

由以下组织支持