鱼C论坛

 找回密码
 立即注册
查看: 122|回复: 2

关于MQTT内容发布错误

[复制链接]
发表于 2022-6-15 10:04:41 | 显示全部楼层 |阅读模式
50鱼币
本帖最后由 榴莲山竹酥 于 2022-6-15 10:06 编辑


请问下大佬 这个问题应该怎么解决
完整代码:
import paho.mqtt.client as mqtt
import time

class MqttServer:
    def __init__(self,ip) -> None:
        sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/' + '..'))
        sys.path.append("..")
        _client_id = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
        self.ip = ip
        self.client = mqtt.Client(_client_id, transport='tcp')
        self.client.connect(self.ip, 1883, 60)
        self.client.loop_start()


    def send_message(self,topic:str,message: str):
        """
        topic: 发送主题
        message: 发送的消息体
        """
        payload = {
            "topic":eval(topic),
            #"msg": eval("%s" % message),
            "msg": "%s" % message,
            "len":len(msg),
            "send_time": "%s" % time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())),
            "from_ip":self.client._host,
            "type":'msg',
            "version":mqtt.CONNACK_REFUSED_PROTOCOL_VERSION}

        self.client.publish(topic, json.dumps(payload, ensure_ascii=False))
        print("------Successful send message!------")
        return True


    if __name__ == '__main__':
        IP = 'xxx.xxx.xxx.xx'
        #IP = input("输入MQTT服务器地址:")
        
        try:
            #mqttServer = MqttServer(IP)
            mqttServer = IP
        except ConnectionRefusedError:
            print("MQTT中间件服务器未开启!")
            sys.exit()
        print(f"mqtt服务端初始成功\n服务器IP:{IP}\n时间:{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))}")
        
        while 1:
            try:
                topic = input("发布主题:")
                msg =  input("发布内容:")
                mqttServer.send_message(topic=topic,message= eval (msg))
                print(f"topic:{topic} \n msg:{msg}")
                print("------------------------------------")
            except KeyboardInterrupt:
                print("system exit success")
                sys.exit()

a70e3bec02ce7568588cbcd04ad2dc7.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-6-19 21:15:40 | 显示全部楼层
  1. if __name__ == '__main__':
  2.         IP = 'xxx.xxx.xxx.xx'
  3.         #IP = input("输入MQTT服务器地址:")
  4.         
  5.         try:
  6.             #mqttServer = MqttServer(IP)
  7.             mqttServer = IP  #看这里!!!!!!!!!!!!!!
  8.         except ConnectionRefusedError:
  9.             print("MQTT中间件服务器未开启!")
  10.             sys.exit()
  11.         print(f"mqtt服务端初始成功\n服务器IP:{IP}\n时间:{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))}")
复制代码



你看你的mqttServer是ip,是字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 5 小时前 | 显示全部楼层
已自我解决 主函数缩进错误导致
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2022-7-1 16:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表