Alamofire上的事件监听器

时间:2016-08-20 16:42:21

标签: ios swift macos deployd

我曾经在Firebase上构建我的应用程序,并且有一个方法可以监听价值更新,如下所示:

.onreadystatechange

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

感谢。

1 个答案:

答案 0 :(得分: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文件的哪个路径被编辑或添加,idk如何单独处理事物和东西,但我认为你可以处理其余的XD。不是一个好的答案,但我希望我帮助XD(第一次正确回答)