关于mqtt服务器的搭建以及使用Python实现一个简单的聊天软件

时间:2024-04-12 15:13:26

mqtt作为最近几年比较火的物联网解决方案。一直在被很多企业在使用。其实百度和阿里其实也为我们搭建的mqtt服务器,你只需要配置一下用户名和密码就可以了。这里主要讲解一下。可以在Mac上运行的mqtt服务器。emqttd。

安装和启动。

其实这个和很多的软件是一样的。比如Tomcat。进入到这个emqttd 的bin的文件 然后./ emqttd start .Tomcat的启动也是类似的。

关于mqtt服务器的搭建以及使用Python实现一个简单的聊天软件

启动完成后。我们在浏览器上输入http://127.0.0.1:18083/#/clients 输入密码之后就可以连接了。

我们看看控制台里面有什么吧。

关于mqtt服务器的搭建以及使用Python实现一个简单的聊天软件

关于控制台的里面的功能。英文是中文就没有啥好说的。

在插件这个模块中如果开启了emq_auth_http认证。emq_auth_username认证就不能进行了。会导致连接不上服务器的情况了。

下面我直接上python代码了。实现一个聊天功能。初步了解一下如何连接mqtt服务器。发布主题和订阅主题的功能吧。

 


import paho.mqtt.client as mqtt
import json

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))

    client.subscribe("chat")
    client.publish("chat", json.dumps({"user": user, "say": "Hello,anyone!"}))

# 接收到消息的回调方法
def on_message(client, userdata, msg):
    #print(msg.topic+":"+str(msg.payload.decode()))
    #print(msg.topic+":"+msg.payload.decode())
    payload = json.loads(msg.payload.decode())
    print(payload.get("user")+":"+payload.get("say"))


if __name__ == '__main__':
    client = mqtt.Client()
    client.username_pw_set("admin", "password")  # 必须设置,否则会返回「Connected with result code 4」
    client.on_connect = on_connect
    client.on_message = on_message

    HOST = "127.0.0.1"

    client.connect(HOST, 1883, 30)
    #client.loop_forever()

    user = input("请输入名称:")
    client.user_data_set(user)

    client.loop_start()

    while True:
        str = input()
        if str:
            client.publish("chat", json.dumps({"user": user, "say": str}))

上面的代码请拷贝2份,运行2个项目。然后在控制台输入你想要说的话了。