我在我的项目中使用 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 实现这种期望的行为?
谢谢您的帮助。