处理Mqtt客户端发送中文乱码&连接不稳定问题分享

  • Post author:
  • Post category:其他


一、背景

接到客户需求:需要新增Mqtt上传数据,提供了访问信息及上传格式:

用户名,密码,IP,端口,订阅,发送等等,数据上传的格式为json格式的字符串。

二、调试发现的问题

代码编写完成后,上机测试,发现如下问题:

1、上传的中文字符串乱码;

2、与服务端连接不稳定(偶尔会自动断开);

3、首次连接服务端会连接失败;

三、问题分析

1、中文字符串乱码问题,经过与客户工程师确认字符串格式:GB2312,经过优化已经解决,具体代码段:

var appMsg = new MqttApplicationMessage();

appMsg.Topic = topic;

appMsg.Payload = Encoding.GetEncoding(“GB2312”).GetBytes(payload);

appMsg.QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce;

appMsg.Retain = false;

client.PublishAsync(appMsg);

如果是utf-8格式,则需要将上述字符串改为utf-8即可;

2、提供几种解决思路:

(1)PC防火墙要关闭;

(2)PING 服务端的IP地址,观察网络稳定性;

(3)代码实例化mqtt客户端时,记得写入连接超时属性;

三、总结

1、上传到服务端的字符串格式以及编码方式要确认清楚;

============================================

【感兴趣的伙伴留言,可以提供服务端、客户端源代码,技术交流】

后期还会不定期分享踩过的坑以及心得,希望能帮到依然坚持在工控领域的伙伴。



版权声明:本文为weixin_44987656原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。