Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何使用python形成连接solace的地址字符串_Python 3.x_Amqp_Qpid_Solace - Fatal编程技术网

Python 3.x 如何使用python形成连接solace的地址字符串

Python 3.x 如何使用python形成连接solace的地址字符串,python-3.x,amqp,qpid,solace,Python 3.x,Amqp,Qpid,Solace,我想使用来自我公司已设置的solace broker的邮件。当我询问与solace连接所需的主机名等时,我公司的solace团队提供了以下详细信息- 连接工厂-cf/dev\u test\u uk VPN-开发测试英国 VPN服务器-smf://host:port 用户名-user1 密码-密码1 主题-测试主题 作为参考,我使用的代码提供在 我的代码是- from proton import Message from proton.handlers import MessagingHandle

我想使用来自我公司已设置的solace broker的邮件。当我询问与solace连接所需的主机名等时,我公司的solace团队提供了以下详细信息-

连接工厂-cf/dev\u test\u uk
VPN-开发测试英国
VPN服务器-smf://host:port
用户名-user1
密码-密码1
主题-测试主题

作为参考,我使用的代码提供在

我的代码是-

from proton import Message
from proton.handlers import MessagingHandler
from proton.reactor import Container

class HelloWorld(MessagingHandler):
    def __init__(self,url,address,username,password):
        super(HelloWorld,self).__init__()
        self.url = url
        self.address = address
        self.username = username
        self.password = password

    def on_start(self,even):
        conn = event.container.connect(url = self.url,
                                       user=self.username,
                                       password=self.password)

        event.container.create_receiver(conn, self.address)

    def on_message(self, event):
        print(event.message.body)
        event.connection.close()


Container(HelloWorld("smf://host:port","topic://testtopic","user1","password1")).run()
当我运行这段代码时,我得到了“amqp:connection:framing error”,“SASL头不匹配:数据不足,无法确定协议[“”](连接中止)”

这是预期的,因为我认为形成的url或地址字符串不正确。 以下是我的问题-

  • 在进行连接时,我应该在哪里使用此VPN和连接工厂
  • VPN服务器url不应该是这样的吗amqp://.... ?
请帮我解决这个问题。

不幸的是。。。。 Solace不支持python模块访问Solace协议(SMF)

您可以自己包装C API

因为我还需要这个Python客户端API

所以你可以参考我们的项目


(WARRNING-非正式的

看起来他们给了你SMF协议的访问参数(当然是URL),而不是AMQP。SMF是一种专有的消息传递协议,您可以通过下载Solace client SDK获得支持的语言。AMQP是受支持的,但它接受Solace路由器在不同端口(默认为5671/5672)上的连接。文档如下:。。。这是您的Solace团队如何在经纪人上为您启用AMQP,以防他们尚未: