Alamofire 上的事件监听器

Event listener on Alamofire

我以前在 Firebase 上构建我的应用程序,有一个方法可以监听值更新,就像这样:

refHandle = postRef.observeEventType(FIRDataEventType.Value, withBlock: { (snapshot) in
  let postDict = snapshot.value as! [String : AnyObject]
  // ...
})

现在我不再使用 firebase,我使用 deployd 并使用 Alamofire 在 JSON 中检索数据。我想知道 Alamofire 中是否有一个事件侦听器可以在数据库中的值发生变化时执行代码,而不是每 2 分钟检索一次该值。

谢谢。

好的,所以我发现了这个叫做 TRVSEventSource 的东西,它是用来处理 SSE 事件的。

所以我在添加头文件并像这样桥接它们之后添加了以下代码:

let configs = NSURLSessionConfiguration.defaultSessionConfiguration()
    configs.HTTPAdditionalHeaders = ["Accept" : "text/event-stream"]

    let eventsource = TRVSEventSource(URL: NSURL(string: "https://app.firebaseio.com/about.json?auth=<Your Database Secret>"), sessionConfiguration: configs)
    eventsource.delegate = self

    eventsource.open()

在使用 TRVSEventSourceDelegate 之后,我添加了这个委托来获取信息:

 func eventSource(eventSource: TRVSEventSource!, didReceiveEvent event: TRVSServerSentEvent!) {
    do{
        let data = try NSJSONSerialization.JSONObjectWithData(event.data, options: .MutableContainers)
        print(data)
    }
    catch let error
    {
        print(error)
    }
}

下面打印类似这样的东西{ data = { desc = "My Data"; }; path = "/"; }

并且还告诉您 JSOn 文件的哪个路径已被编辑或添加,我知道如何单独处理事情等等,但我认为您可以处理其余的 XD。不是一个好的答案,但我希望我能帮助 XD(第一次正确回答问题)