【发布时间】:2017-06-08 13:14:00
【问题描述】:
我有一个服务器,它会在 10 秒后发送一个 true。我该怎么做才能让 iOS 应用程序等到它从服务器接收到该真实值? 10 秒不是恒定的,无论服务器需要多长时间,我都需要应用程序能够获取布尔值。
我的应用程序将用于倒水,直到它达到一定高度,然后它会在完成后在您的手机上通知您。
更新(更多信息):
我正在关注的指南链接:http://www.appcoda.com/socket-io-chat-app/
func getChatMessage(completionHandler: (messageInfo: [String: AnyObject]) -> Void) {
socket.on("newChatMessage") { (dataArray, socketAck) -> Void in
var messageDictionary = [String: AnyObject]()
messageDictionary["nickname"] = dataArray[0] as! String
messageDictionary["message"] = dataArray[1] as! String
messageDictionary["date"] = dataArray[2] as! String
completionHandler(messageInfo: messageDictionary)
}
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
SocketIOManager.sharedInstance.getChatMessage { (messageInfo) -> Void in
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.chatMessages.append(messageInfo)
self.tblChat.reloadData()
// self.scrollToBottom()
})
}
}
我想做一些与此非常相似的事情,即不断从服务器获取消息并将它们加载到视图中。但是,此代码不适用于 Swift 3/iOS 10,而且我找不到任何有关如何更新它的文档。我尝试将其简单地放入我的代码中,然后使用推荐的修复程序尝试使其工作,但它没有。
最后,我的服务器将托管在 Pi Zero 上,我需要通过服务器接收来自 Pi 的消息,表明水位已达到适当的水位。 谢谢
【问题讨论】:
-
您可以运行一个每 1 秒(或每 0.1 秒或其他)运行的计时器,如果为真,则发送警报并结束计时器
标签: node.js swift socket.io server swift3