把前两天写的GO分享给,朋友后。
收到几个建议:
1.有没进行压力测试,就是不停的收数据
第一个问题,那天就进行了测试,可能是因为服务(1核1G)的原因吧 进行POST 操作(NGINX MYSQL)也在这个(1核 1G)服务器上。 1秒/50QPS,稳定运行。
2.链接断开后,是否可以自动恢复
断开后,自动链接 ,把下面这个参数设置成TRUE后,在服务端把MQTT服务器KILL掉,过些时间再启动,程序要过比较久的时候,才能链接上
opts.SetAutoReconnect(true) //自动链接?!
加上下面这个参数后,服务器MQTT一启动,就迅速链接上了
opts.SetMaxReconnectInterval(time.Duration(1) * time.Second) //自动链接间隔吧?!
3.保持长时间链接(当时的代码,空闲久了,会断开,查资料显示是说,如果长时间不发数据),服务器,防火墙等一些东东,会狗拿耗子。
长时间空闲,加下面这个参数,处理的,大概的意思是30秒向服务器发一次数据,保护链接吧。
opts.SetKeepAlive(time.Duration(30) * time.Second) // 定时发送数据,保持链接吧?!
GO语言国内的资料相对,JAVA, PHP 还是少很得多的。
中间还冒出了别外一个想法,找了一个swoole_client的mqtt客户端包,这个包文档完善。
PHP 语言,就算修改也方法。无奈,压力测试的时候,1秒发3个包,接收的时候,都掉包。。TT