• Python stomp 发送消息无法显示文本


    我们向消息服务器通过 stomp 发送的是文本消息。

    当消息服务器发送成功后,消息服务器上的文本没有显示,显示的是 2 进制的数据。

    2023-09-15_16-41-37

    如上图,消息没有作为文本来显示。

    问题和解决

    消息服务器是如何判断发送的小时是文本还是二进制的。

    根据官方的说, Stomp 如设置了 content-length 就认为是二进制的消息,如果没有设置的话就是文本消息。

    2023-09-15_16-45-06

    让后我们再看看创建消息的源代码:

    在 Stomp 的源代码中,auto_content_length 这个参数的默认值为 True。

    如果我们不在连接的时候进行指派,那么默认就会使用 Ture。

    返回到我们的源代码,把上面的参数添加进来。

    2023-09-15_16-47-12

    然后再次发送文本消息。

    在这里,我们会看到消息的类型被修改为了文本。

    同时我们发送的数据也能够在消息服务器上看到了。

    2023-09-15_16-48-25

    Stomp Python 发送消息源代码

    有时候,不得不说,这 Python 的代码是非常简单。

    而且可以用好多已经可以用的库了,这个比 Java 是方便不少。

    1. import time
    2. import stomp
    3. AMQHOST = "nas1120"
    4. AMQPORT = 61616
    5. AMQUSER = "artemis"
    6. AMQPASS = "artemis"
    7. TOPICNAME = "remotingQueue"
    8. hosts = [(AMQHOST, AMQPORT)]
    9. conn = stomp.Connection(host_and_ports=hosts, auto_content_length=False)
    10. conn.connect(username=AMQUSER, passcode=AMQPASS, wait=True)
    11. conn.send(body='Love Python', destination=TOPICNAME)
    12. time.sleep(320)
    13. conn.disconnect()
    上面的代码只需要改一下参数应该就可以发送消息到你想发送的服务器上去了。

    Python stomp 发送消息无法显示文本 - Python - iSharkFly

  • 相关阅读:
    LeetCode 009:回文数
    Android Jetpack-Compose相关
    睿趣科技:抖音开店的操作流程有哪些
    set 模拟与用法
    大数据存储与处理
    利用XtraDiagram.DiagramControl进行流程图形的绘制和控制
    K8s搭建(单节点)
    Redis的set数据类型——Redis
    h0206. 区间选点
    MMKV源码解读与理解
  • 原文地址:https://blog.csdn.net/huyuchengus/article/details/132914179