https://www.cnblogs.com/xiaoyehack/p/9916817.html
报错mysql_config: command not found
运django 报错:ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
pip install mysqlclient 安装最新
要在上面安装django,直接用命令 pip install django 安装
判断是否安装成功:
[root@Lrw888 ~]# python
>>> import djangoo
>>> django.get_version()
'2.2.1'
>>>
返回2.2.1 表示安装成功2.2.1版本
发现 操作数据库的程序 隔一段时间 没有插入数据成功,原理是mysql链接默认设置8小时没有数据插入就自动关闭链接。
demo 客户端确实经常8小时没有数据插入,所以设置数据库8小时断开改为 21天。
wait_timeout=31536000
interactive_timeout=31536000
C++/C 写MQTT客户端实在太啰嗦了,决定用python来写。
安装anaconda3,安装后python -v 依然显示2.6版,原来是还有配置路径:
vim ~/.bashrc ,在文件最后加上 export PATH="/root/anaconda3/bin:$PATH" 即可,注意,此处只是演示,具体路径需根据自己安装的位置进行更改。
第三步:安装好以后,输入命令,使环境变量生效 :source ~/.bachrc,然后重启终端
1、需要安装openssl和openssl-devel
https://blog.csdn.net/thanklife/article/details/55097429
网络安全:https://www.cnblogs.com/bhlsheji/p/4586597.html
选择了轻量的Mosquitto
运行:mosquitto -c /etc/mosquitto/mosquitto.conf -d
Mosquitto简要教程(安装/使用/测试):https://blog.csdn.net/shagoo/article/details/7910598
MQTT客户端C代码:https://www.jianshu.com/p/d309de966379
http://www.cnblogs.com/star91/p/4889820.html《菜鸟是如何打造智能家居系统的》
https://www.cnblogs.com/star91/p/5002297.html
《Paho -物联网 MQTT C Cient的实现和详解》
https://www.cnblogs.com/homejim/p/8196763.html
客户端代码库:
https://www.eclipse.org/paho/downloads.php
《Paho MQTT C Client Library》
http://www.eclipse.org/paho/files/mqttdoc/MQTTClient/html/index.html
可视化工具:
MQTTBox ,MQTTBox有两种使用的方式:一种为Chrome插件;另外一种为Windows程序安装。
1)下载安装软件:读者可以根据自己的喜好,下载不同的版本:此处为Chrome版本的下载地址(需);此处为Windows安装程序。
2)根据安装向导的提示,完成MQTTBox的安装
3)打开安装好的应用图标,如下图所示
MQTT协议中通过主题(Topic)在消息发布者和
1)建立MQTT连接,如下图所示,点击“Create MQTT Client”
2)指定连接相关信息,包括连接名称(可以随意输入)、协议(选择mqtt/tcp)和主机地址(安装在本地,MQTT缺省端口为1883,所以输入127.0.0.1:1883),然后单击“Save”保存。连接中一些别的选项先保持缺省值,读者对MQTT协议比较熟悉之后,就可以了解这些选项的意义。
保存成功后进入如下的界面,接下来可以开始测试消息发布和订阅。如下图所示,绿色“Connected”按钮表明当前MQTT连接已经成功
3)首先我们开启一个订阅,如下图所示。“Topic to subscribe”里填入要订阅的主题“windows”;“QoS”字段选择“0 - Almost Once”;然后点击“Subscribe”按钮
4)设置好订阅的主题后,在发布这边输入如下的信息。“Topic to publish”中输入“windows”,这里输入的主题的名字必须和订阅那里的输入相同;“QoS”中选择“0 - Almost Once”;“Payload”中输入任何内容都可以,如下图所示输入了一组JSON字符串;所有内容输入完毕之后,点击“Publish”按钮
5)在订阅端就会收到由服务器端转发的消息内容,如下图所示。
6)打开EMQ的管理员控制台,可以看到一些相关的统计数据已经发生了变化。比如在“The messages data”表格中,“qos0/received”的值为1,说明EMQ收到了1条QoS0的消息;“qos0/sent”的值为1,表示EMQ转发了一条QoS0的消息。
好了,EMQ君带领着大家初步领略了MQTT服务器能够提供的基本功能,如果读者想了解其它MQTT服务器在不同平台上的安装的话,请参考以下系列文章。
Ubuntu上搭建EMQ MQTT服务器
Ubuntu上搭建EMQ Mosquito服务器
Ubuntu上搭建EMQ Apollo服务器
Windows上搭建Mosquitto MQTT服务器
Windows上搭建Apache Apollo MQTT服务器
小礼物走一走,来简书关注我
作者:EMQ
链接:https://www.jianshu.com/p/e5cf0c1fd55c
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
MQTT的简洁说明:
一、了解MQTT基本知识
1.在MQTT通讯过程中,有三种身份,分别是发布者(publisher)、代理(broker)、和订阅者(subscriber)。
2.MQTT传输的消息分为:主题(topic)和负载(payload)两部分:
3.当应用数据通过MQTT网络发送时,MQTT会把与之相关的服务质量(QoS)和主题名(Topic)相关连。
QoS在MQTT中有(摘自MQ 遥测传输 (MQTT) V3.1 协议规范):
MQTT.js只是支持了MQTT协议,并没有支持QoS,也就是说,只支持最低级别的“至多一次”(QoS0)。
4.在MQTT客户端上干什么?
5.MQTT服务器又干什么?
6.MQTT协议数据包(packet)结构
在MQTT协议中,一个MQTT数据包由:固定头(Fixed header)、可变头(Variable header)、消息体(payload)三部分构成。
这里只了解消息体,固定头和可变头并不需要我们手动写。
payload消息体包含CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRIBE四种类型的消息:
7.MQTT协议规定的方法(重要,无论在那个框架里这是通用的)
(1)Connect 与服务器建立连接。
(2)Disconnect 与服务器断开TCP/IP会话。
(3)Subscribe 订阅。
(4)UnSubscribe 取消订阅。
(5)Publish 发送消息请求,发送完成后返回应用程序线程。
二、实现(具体的API稍后呈现)
客户端1:(发布消息)
let mqtt = require('mqtt')
let client = mqtt.connect('mqtt://localhost:233')
client.on('connect', () => {
setInterval(function() {
let message = new Date().toLocaleString()
//每隔1s发布主题为dialog的消息
client.publish('dialog', message, {
qos: 0, //可以丢失
retain: false //不保留
})
}, 1000)
})
客户端2:(接收消息)
let mqtt = require('mqtt')
let client = mqtt.connect('mqtt://localhost:233')
client.on('connect', () => {
//订阅主题为dialog的消息
client.subscribe('dialog')
})
client.on('message', (topic, message) => {
//打印主题
console.log(topic)
//打印消息,是buffer形式
console.log(message.toString())
})
服务端:
const mosca = require('mosca');
let settings = {
port: 233,
};
let server = new mosca.Server(settings);
server.on('ready', () => {
console.log('server is running');
});
server.on('clientConnected', (client) => {
console.log(client);
});
server.on('published', (packet, client) => {
//服务器作为中转站,可以打印数据包中的内容
console.log(packet.payload);
})
运行结果
三、具体API(时间不够,我先不写了)
先放几个链接日后我自行翻译:
mosca的http://www.mosca.io/docs/lib/server.js.html#Server
mqtt.js的https://www.npmjs.com/package/mqtt#api
mqtt中文协议:https://www.gitbook.com/book/mcxiaoke/mqtt-cn/details,没什么用啊用别人框架都不需要这个
作者:lhdoeo
链接:https://www.jianshu.com/p/b452e2cee0d6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。