解锁 iPhone 屏幕后如何重新连接到 Openfire 服务器?
How to reconnect to Openfire server after unlocking the iPhone screen?
我正在使用 XMPPFramework。当我锁定 iPhone 屏幕时,我的 XMPP 连接总是关闭。
当我解锁屏幕时,我需要重新连接到我的 Openfire 服务器。
这是我如何使用 XMPPReconnect
(在 Swift 中):
func xmppStreamDidAuthenticate(sender: XMPPStream) {
let xmppReconnect = XMPPReconnect()
xmppReconnect.activate(sender)
xmppReconnect.addDelegate(self, delegateQueue: dispatch_get_main_queue())
}
但是,我解锁屏幕后似乎永远不会重新连接。
我使用 XMPPReconnect
正确吗?
如何实现我的目标?
您必须在 applicationDidBecomeActive 的 appdelegate 中编写代码。因为当你解锁屏幕时会调用这个方法,在这个方法中你必须调用connect方法才能打开fire....
func applicationDidBecomeActive(application: UIApplication) {
self.connect()
}
func connect() -> Bool {
println("connecting")
setupStream()
var jabberID: String? = "YOUR_JID"
var myPassword: String? = "YOUR_PASSWORD"
var server: String? = "YOUR_HOST"
xmppStream!.hostName = "YOURHOST_NAME"
xmppStream!.hostPort = 5222
if let stream = xmppStream {
if !stream.isDisconnected() {
return true
}
if jabberID == nil || myPassword == nil {
println("no jabberID set:" + "\(jabberID)")
println("no password set:" + "\(myPassword)")
return false
}
stream.myJID = XMPPJID.jidWithString(jabberID)
password = myPassword
var error: NSError?
if !stream.connectWithTimeout(XMPPStreamTimeoutNone, error: &error) {
var alertView: UIAlertView? = UIAlertView(title:"Error", message: "Cannot connect to \(error!.localizedDescription)", delegate: nil, cancelButtonTitle: "Ok")
alertView!.show()
return false
}
}
return true
}
希望对您有所帮助!
我正在使用 XMPPFramework。当我锁定 iPhone 屏幕时,我的 XMPP 连接总是关闭。 当我解锁屏幕时,我需要重新连接到我的 Openfire 服务器。
这是我如何使用 XMPPReconnect
(在 Swift 中):
func xmppStreamDidAuthenticate(sender: XMPPStream) {
let xmppReconnect = XMPPReconnect()
xmppReconnect.activate(sender)
xmppReconnect.addDelegate(self, delegateQueue: dispatch_get_main_queue())
}
但是,我解锁屏幕后似乎永远不会重新连接。
我使用 XMPPReconnect
正确吗?
如何实现我的目标?
您必须在 applicationDidBecomeActive 的 appdelegate 中编写代码。因为当你解锁屏幕时会调用这个方法,在这个方法中你必须调用connect方法才能打开fire....
func applicationDidBecomeActive(application: UIApplication) {
self.connect()
}
func connect() -> Bool {
println("connecting")
setupStream()
var jabberID: String? = "YOUR_JID"
var myPassword: String? = "YOUR_PASSWORD"
var server: String? = "YOUR_HOST"
xmppStream!.hostName = "YOURHOST_NAME"
xmppStream!.hostPort = 5222
if let stream = xmppStream {
if !stream.isDisconnected() {
return true
}
if jabberID == nil || myPassword == nil {
println("no jabberID set:" + "\(jabberID)")
println("no password set:" + "\(myPassword)")
return false
}
stream.myJID = XMPPJID.jidWithString(jabberID)
password = myPassword
var error: NSError?
if !stream.connectWithTimeout(XMPPStreamTimeoutNone, error: &error) {
var alertView: UIAlertView? = UIAlertView(title:"Error", message: "Cannot connect to \(error!.localizedDescription)", delegate: nil, cancelButtonTitle: "Ok")
alertView!.show()
return false
}
}
return true
}
希望对您有所帮助!