不断从服务器获取数据
Getting Data from server Continuosly
我需要不断从服务器获取数据。我进行了搜索,然后想到使用 NSTimer 在特定时间间隔内在后台线程中连续调用服务。
var timer = NSTimer.scheduledTimerWithTimeInterval(10, target: self, selector: "callService", userInfo: nil, repeats: true)
func callService()
{
let qualityOfServiceClass = QOS_CLASS_BACKGROUND
let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0)
dispatch_async(backgroundQueue, {
.....
dispatch_async(dispatch_get_main_queue(), { () -> Void in
......
})
})
}
我们可以这样做吗?。这是执行此操作的好方法吗?或者还有其他方法吗?我真的很想知道如何 didUpdateLocation
在 CLLocationManagerDelegate
作品中。我想实现类似的方法。请在此给出您的想法。
我通过 socket.io 实现了它。我看到了这个网站 http://geoloqi.com/blog/2011/09/building-a-real-time-location-based-urban-geofencing-game-with-socket-io-redis-node-js-and-sinatra-synchrony/#comments。当我浏览 link 时,我可以理解他们和我一样使用 NSTimer 在特定时间间隔调用服务。但是它消耗了很大的电池电量。然后他们使用了Socket。
我从 github https://github.com/socketio/socket.io-client-swift
得到 socket.io swift 2 的代码
let socket = SocketIOClient(socketURL: "localhost:8080")
socket.on("connect") {data, ack in
print("socket connected")
}
socket.on("currentAmount") {data, ack in
if let cur = data[0] as? Double {
socket.emitWithAck("canUpdate", cur)(timeoutAfter: 0) {data in
socket.emit("update", ["amount": cur + 2.50])
}
ack?.with("Got your currentAmount", "dude")
}
}
socket.connect()
它解决了我的问题。
我需要不断从服务器获取数据。我进行了搜索,然后想到使用 NSTimer 在特定时间间隔内在后台线程中连续调用服务。
var timer = NSTimer.scheduledTimerWithTimeInterval(10, target: self, selector: "callService", userInfo: nil, repeats: true)
func callService()
{
let qualityOfServiceClass = QOS_CLASS_BACKGROUND
let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0)
dispatch_async(backgroundQueue, {
.....
dispatch_async(dispatch_get_main_queue(), { () -> Void in
......
})
})
}
我们可以这样做吗?。这是执行此操作的好方法吗?或者还有其他方法吗?我真的很想知道如何 didUpdateLocation
在 CLLocationManagerDelegate
作品中。我想实现类似的方法。请在此给出您的想法。
我通过 socket.io 实现了它。我看到了这个网站 http://geoloqi.com/blog/2011/09/building-a-real-time-location-based-urban-geofencing-game-with-socket-io-redis-node-js-and-sinatra-synchrony/#comments。当我浏览 link 时,我可以理解他们和我一样使用 NSTimer 在特定时间间隔调用服务。但是它消耗了很大的电池电量。然后他们使用了Socket。
我从 github https://github.com/socketio/socket.io-client-swift
得到 socket.io swift 2 的代码let socket = SocketIOClient(socketURL: "localhost:8080")
socket.on("connect") {data, ack in
print("socket connected")
}
socket.on("currentAmount") {data, ack in
if let cur = data[0] as? Double {
socket.emitWithAck("canUpdate", cur)(timeoutAfter: 0) {data in
socket.emit("update", ["amount": cur + 2.50])
}
ack?.with("Got your currentAmount", "dude")
}
}
socket.connect()
它解决了我的问题。