用于连接到Crossbar.io HTTP桥接服务的库。
项目描述
提供访问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许可证下发布。
项目详情
crossbarhttp3-1.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3bd1a1d868cfc05609a36320d9a8207049a66eb4fd9a535fb309f42453130dd4 |
|
MD5 | 605e9b7fa955d04b0c1ab1875d1a088b |
|
BLAKE2b-256 | 1e5d23e8ae3269ca91c9f515f32a14874b60c1ef96342ada6d7f831654d56183 |
交叉条http3-1.1-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d03fb48a43523c01e6372eed40bcb1cb7b76e5024c5a7e8308c83fded99c6860 |
|
MD5 | 31cea746e0ac953626af22d52c737e2a |
|
BLAKE2b-256 | f1d547df14de22c52d64c777b4a4be3f2de383a8b68a1e363163baffa087c95c |