测试docker容器中的Python mqtt客户端连接到mqtt代理docker容器

用户名

我有一个包含python脚本单元测试的测试容器,以测试与mqtt代理的连接。mqtt代理是另一个使用eclipse-mosquitto:latest的docker容器。

我还创建了一个docker网络。

以下是docker语句:

docker network create test_network
docker run -d -p 21883:1883 --name=gatewaymqtt --network=test_network -v "$PWD/work/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf" -v "$PWD/work/mosquitto/data:/mosquitto/data" -v "$PWD/work/mosquitto/log:/mosquitto/log" eclipse-mosquitto:latest

docker build -t test -f ./Dockerfile-test .
docker run --network=test_network test

在测试容器中,它正在运行此python单元测试:

class TestClient(unittest.TestCase):

def test_mqtt_connect(self):
    log = logging.getLogger("test_mqtt_connect")
    # The callback for when the client receives a CONNACK response from the server.
    def on_connect(client, userdata, flags, rc):
        log.debug("Connected with result code "+str(rc))

        # Subscribing in on_connect() means that if we lose the connection and
        # reconnect then subscriptions will be renewed.
        #client.subscribe("$SYS/#")

    # The callback for when a PUBLISH message is received from the server.
    def on_message(client, userdata, msg):
        log.debug(msg.topic+" "+str(msg.payload))

    client = mqtt.Client()
    client.on_connect = on_connect
    client.on_message = on_message

    client.connect("gatewaymqtt ", 21883, 60)
    sleep(5)
    client.disconnect()

if __name__ == '__main__':
    unittest.main()

但是,我没有看到来自测试容器的任何传入连接?

这是测试容器的日志:

======================================================================
ERROR: test_mqtt_connect (__main__.TestClient)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_socketio.py", line 69, in test_mqtt_connect
    client.connect("gatewaymqtt ", 21883, 60)
  File "/usr/local/lib/python3.7/site-packages/paho/mqtt/client.py", line 937, in connect
    return self.reconnect()
  File "/usr/local/lib/python3.7/site-packages/paho/mqtt/client.py", line 1071, in reconnect
    sock = self._create_socket_connection()
  File "/usr/local/lib/python3.7/site-packages/paho/mqtt/client.py", line 3522, in _create_socket_connection
    return socket.create_connection(addr, source_address=source, timeout=self._keepalive)
  File "/usr/local/lib/python3.7/socket.py", line 728, in create_connection
    raise err
  File "/usr/local/lib/python3.7/socket.py", line 716, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

----------------------------------------------------------------------
真崎

当您在docker网络内部连接时,请使用实际端口,而不要暴露一个端口。21883连接到Docker主机和1883Docker网络内部时应使用

...
client.connect("gatewaymqtt ", 1883, 60)
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

远程客户端无法连接到在Azure VM中运行的Redisai Docker容器

来自分类Dev

将mysql客户端容器连接到mysql服务器容器Docker

来自分类Dev

Docker容器中的Eureka客户端

来自分类Dev

无法从Docker容器(node.js客户端)连接到Elasticsearch

来自分类Dev

错误:连接到运行中的容器时,客户端网络套接字在建立安全TLS连接之前已断开连接-Docker远程容器

来自分类Dev

无法从Python Docker连接到mqtt Docker

来自分类Dev

如何使用自签名证书连接到 Android(paho 客户端)中的 Mqtt 服务器?

来自分类Dev

HTML页面中的mqtt客户端

来自分类Dev

MQTT Android客户端未连接到代理

来自分类Dev

在Docker容器中安装mongo客户端

来自分类Dev

如何在Docker容器中运行JavaScript客户端?

来自分类Dev

如何在Docker容器中运行OpenVPN客户端?

来自分类Dev

在Docker容器中安装mongo客户端

来自分类Dev

客户端容器以测试容器中的服务

来自分类Dev

Docker容器中的Python

来自分类Dev

Apache MQ Artemis-MQTT保留的消息不适用于连接到集群中其他节点的客户端

来自分类Dev

Paho Python MQTT客户端成功连接,但未调用on_connect回调

来自分类Dev

在某些客户端浏览器中的MQTT连接超时

来自分类Dev

无法连接到Docker容器中的mongodb

来自分类Dev

无法连接到Docker容器中的mongodb

来自分类Dev

Docker - 连接到容器中的开放端口

来自分类Dev

使用Jenkins在Docker容器中运行测试

来自分类Dev

在Docker容器中运行cypress测试?

来自分类Dev

具有客户端访问控制的Mongodb Docker容器

来自分类Dev

从静态客户端访问Docker容器的IP地址

来自分类Dev

Docker容器内的IPSEC VPN客户端(Ubuntu)

来自分类Dev

无法将MySQL容器连接到Docker中的Tomcat容器

来自分类Dev

Netty websocket 客户端中的 Http 代理连接到互联网

来自分类Dev

python Paho客户端MQTT:写入多个文件

Related 相关文章

  1. 1

    远程客户端无法连接到在Azure VM中运行的Redisai Docker容器

  2. 2

    将mysql客户端容器连接到mysql服务器容器Docker

  3. 3

    Docker容器中的Eureka客户端

  4. 4

    无法从Docker容器(node.js客户端)连接到Elasticsearch

  5. 5

    错误:连接到运行中的容器时,客户端网络套接字在建立安全TLS连接之前已断开连接-Docker远程容器

  6. 6

    无法从Python Docker连接到mqtt Docker

  7. 7

    如何使用自签名证书连接到 Android(paho 客户端)中的 Mqtt 服务器?

  8. 8

    HTML页面中的mqtt客户端

  9. 9

    MQTT Android客户端未连接到代理

  10. 10

    在Docker容器中安装mongo客户端

  11. 11

    如何在Docker容器中运行JavaScript客户端?

  12. 12

    如何在Docker容器中运行OpenVPN客户端?

  13. 13

    在Docker容器中安装mongo客户端

  14. 14

    客户端容器以测试容器中的服务

  15. 15

    Docker容器中的Python

  16. 16

    Apache MQ Artemis-MQTT保留的消息不适用于连接到集群中其他节点的客户端

  17. 17

    Paho Python MQTT客户端成功连接,但未调用on_connect回调

  18. 18

    在某些客户端浏览器中的MQTT连接超时

  19. 19

    无法连接到Docker容器中的mongodb

  20. 20

    无法连接到Docker容器中的mongodb

  21. 21

    Docker - 连接到容器中的开放端口

  22. 22

    使用Jenkins在Docker容器中运行测试

  23. 23

    在Docker容器中运行cypress测试?

  24. 24

    具有客户端访问控制的Mongodb Docker容器

  25. 25

    从静态客户端访问Docker容器的IP地址

  26. 26

    Docker容器内的IPSEC VPN客户端(Ubuntu)

  27. 27

    无法将MySQL容器连接到Docker中的Tomcat容器

  28. 28

    Netty websocket 客户端中的 Http 代理连接到互联网

  29. 29

    python Paho客户端MQTT:写入多个文件

热门标签

归档