Ios 作为单独的功能订阅exchange

Ios 作为单独的功能订阅exchange,ios,swift,rabbitmq,Ios,Swift,Rabbitmq,我对RabbitMQ使用单例模式: final class ServiceBus{ static let Instance = ServiceBus() var conn: RMQConnection; var ch: RMQChannel; var clientExchange: RMQExchange; var clientQueue: RMQQueue; private init() { let delegate =

我对RabbitMQ使用单例模式:

final class ServiceBus{

    static let Instance = ServiceBus()

    var conn: RMQConnection;
    var ch: RMQChannel;
    var clientExchange: RMQExchange;
    var clientQueue: RMQQueue;  

    private init() {
        let delegate = RMQConnectionDelegateLogger()
        self.conn = RMQConnection(uri: myUri, delegate: delegate)
        self.conn.start()
        self.ch = self.conn.createChannel()
        self.clientExchange = ch.direct("Client")
        self.clientQueue = ch.queue("", options: .exclusive)
    }
}
我也有很多页面,我需要通过sessionID订阅exchange。我现在在每个ViewController上再次订阅:

class FirstViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()        
        ServiceBus.Instance.clientQueue.bind(ServiceBus.Instance.clientExchange, routingKey: sessionID)
        ServiceBus.Instance.clientQueue.subscribe({(_ message: RMQMessage) -> Void in
            let message = String(data: message.body, encoding: .utf8)!        
            //...
        })
    }
}

class SecondViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()        
        ServiceBus.Instance.clientQueue.bind(ServiceBus.Instance.clientExchange, routingKey: sessionID)
        ServiceBus.Instance.clientQueue.subscribe({(_ message: RMQMessage) -> Void in
            let message = String(data: message.body, encoding: .utf8)!        
            //...
        })
    }
}
如何创建一个单独的函数来订阅exchange,并在不同的ViewController上使用相同的单独函数