从AppWrite文档来看,您似乎正在为服务器注册实时通知,并希望将它们转录到内部消息流中。我
认为
您想要做的事情如下:
(我将此代码键入SO中,因此可能无法编译)
func eventsForUser(userId: String) -> PassthroughSubject<[whatever the type for "event" is], Never> {
let subject = PassthroughSubject<[whatever the type for event is], Never>()
net_subscription = appwriteClient.realtime(....) { event in
if (event.isForUser) {
subject.send(event)
}
}
return subject
}
此函数创建一个管道(传递主题),该管道将响应来自服务器的事件。通过管道的值最终是与
appwriteClient.realtime
传递给回调。
如果其他代码想要侦听该管道:
// Set up a pipeline for the user once
let userEvents = eventsForUser(userId: aUserID)
... and then later every one that wants to subscribe will use...
let subscription = userEvents.sink { event in
... do something with event
}
创建之后
PassthroughSubject
其他人可以订阅它,并倾听他们感兴趣的事情。