网络穿透/动态组网/视频上云网关EasyNTS组网平台如何检测MQTT端口是否被占用?

MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能单一的远程设备以及网络状况不良的情况下而设计的发布/订阅型消息协议。

EasyNTS架构图12.5D.png

在实际的EasyNTS部署场景下,由于我们无法得知部署现场有哪些端口是在使用中故而不能接入EasyNTS的,往往会出现接入端口之后EasyNTS无法启动的情况。系统没有提示任何的端口异常提醒,而服务也没办法访问。

297.png

所以我们有必要在开启EasyNTS的MQTT服务时候先检测端口的占用情况,占用会在命令行提示。

我们在编译系统的时候添加了以下代码,在项目启动的时候将MQTT的端口进行本地端口的检测,如果有占用就提示错误信息。

//检测mq端口占用情况
if esys.IsPortInUse(int(esys.IniConf().MqttPort)) {
   err := fmt.Errorf("EasyNTS MQTT port[%v] In Use", esys.IniConf().MqttPort)
   return err
}

解决之后的照片在命令行提示的照片:

298.png

如此便避免我们使用了被占用的端口而导致程序无法运行的情况出现,降低系统运行错误率的同时,也提高了部署的效率。

正常运行的系统如下图:

NTS4.png

EasyNTS上云网关实现了设备的接入与管控、动态组网、远程运维、文件传输、远程指令调用等功能,从终端到云端,形成了一整套的上云网关解决方案,极大地解决现场无固定IP、端口不开放、系统权限不开放等问题。更多视频相关解决方案,均可访问TSINGSEE青犀视频,欢迎联系我们获取演示方案,直观感受,也可自行进行下载及测试。


EasyDarwin开源流媒体服务器,是由国内开源流媒体团队TSINGSEE青犀视频开发和维护的一款开源流媒体平台框架。从2012年12月创建并发展至今,从原有的单服务的流媒体服务器形式,扩展成现在的云平台架构的开源项目。

猜你喜欢

转载自blog.csdn.net/EasyNTS/article/details/108736886