• 如何设计Mqtt的Retain?


    如何设计Mqtt的Retain?

    在opmq中,结构体如下

    服务 srv

    订阅的 sub

    连接client_conn

    topic树, ut

    父子关系,左边是父亲: srv <- sub <- ut <- client_conn

    ​ client_conn <- srv

    其中的clinet_conn任务管道 job

    对于client_conn 的retain

    千万不能通用现成的chan

    一定要用队列list

    对于添加topic函数: addt 。是在ut树下进行节点拷贝,但是断开连接,gc时候肯定会吧任务管道加上。对于这个连接结构体,无法判断神魔时候到底不用,这个交给了go本身的垃圾回收,如果管道没处理好,就是灾难,还是把retain用list,不用管道

    注意

    因为这个opmq实现了掉线重连,这个client_conn是从上到下的参数,贯穿始终,除了断开连接,无法判断用了多少次

  • 相关阅读:
    安卓-登陆页面的实现
    异常
    实用类
    Hashset
    Map
    LinkedList
    arraylist
    继承
    字符串相关代码
    数组代码
  • 原文地址:https://www.cnblogs.com/maomaomaoge/p/15303711.html
Copyright © 2020-2023  润新知