JustDoIt0910 / tinyMQTT

c实现的 MQTT 3.1.1 协议broker和client,支持 qos 0,1,2 消息、ACL 权限控制,支持 mongodb 消息存储。正在实现集群支持
MIT License
36 stars 11 forks source link

希望提供poll或者select的兼容 #17

Open akarinini opened 6 months ago

akarinini commented 6 months ago

目前我在嵌入式的设备上使用您的tinyMQTT,非常好用! 当时我想找一个轻量级的broker在资源受限的平台上跑,费了好大功夫才找到您的作品,给我提供了很大帮助,非常感谢。 但是我在使用时发现了一些点:

  1. 对于所有的消息都认为是字符串 有些场景我需要把结构体直接通过mqtt发出去,因此我需要发送的参数需要为首地址+长度,而不是字符串,而项目里并没有提供带长度的发送接口。我自己对此进行了修改,增加了带长度的发布接口和接收回调。在目前我的使用场景下没有问题,但是不确定是否有其他方面的问题,还是希望本身可以提供。
  2. 希望提供poll或者select的兼容 broker运行的系统使用的内核是支持epoll的,但是有些client所运行的系统是不支持epoll的,只有poll和select。目前我采取的方式是使用其他的mqtt client,没有用这个项目自带的mqtt client。我尝试对epoll的部分进行修改,但是没有成功,希望可以在编译选项中提供poll和epoll的切换,这样就可以统一管理了
  3. 提供功能裁剪 我实际使用的版本commit号是a98ee48ea6e270d33d8ab17e53e9382fc8f7ad33,并在这个版本上进行的二次开发。轻量级的平台上并不需要集群、持久化等功能,但是我也不知道后续的版本是否修复了什么bug,更希望在cmake里提供裁剪选项