mqtt作为最近几年比较火的物联网解决方案。一直在被很多企业在使用。其实百度和阿里其实也为我们搭建的mqtt服务器,你只需要配置一下用户名和密码就可以了。这里主要讲解一下。可以在Mac上运行的mqtt服务器。emqttd。
安装和启动。
其实这个和很多的软件是一样的。比如Tomcat。进入到这个emqttd 的bin的文件 然后./ emqttd start .Tomcat的启动也是类似的。
启动完成后。我们在浏览器上输入http://127.0.0.1:18083/#/clients 输入密码之后就可以连接了。
我们看看控制台里面有什么吧。
关于控制台的里面的功能。英文是中文就没有啥好说的。
在插件这个模块中如果开启了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个项目。然后在控制台输入你想要说的话了。