0

我在我的项目中使用 StarScream 来处理网络套接字。

我的想法是创建一个 BaseClass 来处理所有解析事件并监听传入事件。

BaseClass {
   let socket: WebSocket()
         init() {
             self.socket = WebSocket(someRequest)
         }
    
             public func listenToEvents() {
                self.socket.onEvent = { event in....
                  switch event {
                  case text(let text) {
                  //Send some closure to child class.
             }
       }
   }
}

ChildClass: BaseClass {
    public func listenToEvent(success: @escaping (MyClosure) -> ()) {
       self.listenToEvent {
        //Some closure to view controller with Coddle model.
        success(returndCodableModel)
     }
   }
}

现在我想创建这个基类的子类,每个子类都会调用监听事件并根据接收到的数据返回自己的 Coddle 模型。

请注意,我只有一个 WebSocket 本身的实例保存在一个单例中。

问题是当我每次告诉子类写入套接字时调用子类时,只会调用我发送的最后一个事件的闭包。

如何使用 StarScream 实现这种期望的行为?

谢谢您的帮助。

4

0 回答 0