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

文章讲述了在实现Mqtt数据上传过程中遇到的中文乱码和连接不稳定两大问题。通过确认字符串编码格式为GB2312并优化代码解决了乱码问题。对于连接稳定性,提出了检查防火墙、测试网络稳定性和设置连接超时的解决方案。作者还表示愿意分享源代码和技术经验,并将持续更新相关问题和心得。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

        接到客户需求:需要新增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、上传到服务端的字符串格式以及编码方式要确认清楚;

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六点半A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值