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(第一次正确回答问题)
我以前在 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(第一次正确回答问题)