我在一个月前使用Xcode 6制作的应用程序中使用了Starscream和Pusher-swift,一切正常,Pusher连接并且能够接收消息。
在Xcode将自己更新为7之后因为我忘了关闭计算机,并且在我花了一周时间整理出19375891237849错误后,现在我陷入了应用程序的Websocket部分,它根本不想连接。
不会抛出任何错误。 Pusher认为它已连接(PusherConnection.connected设置为true)但它无法订阅任何频道,也不会弹出错误。
我正在查看红蜘蛛代码,似乎无法弄清楚发生了什么。
有没有人在Xcode 7上看到过这种情况?
是否有一个设置(例如NSAllowsArbitraryLoads设置允许通过HTTP加载对象)默认阻止websockets? (不是我能想象为什么苹果会做这样的事情,也许他们开始雇用微软的开发人员或其他东西)。
答案 0 :(得分:0)
问题出在PusherSwift中:
private func handleConnectionEstablishedEvent(json: PusherEventJSON) {
if let data = json["data"] as? Dictionary<String, AnyObject> {
if let socketId = data["socket_id"] as? String {
//if let connectionData = getPusherEventJSONFromString(data), socketId = connectionData["socket_id"] as? String { // this will fail silently.
self.connected = true
self.socketId = socketId
for (_, channel) in self.channels.channels {
if !channel.subscribed {
if !self.authorize(channel) {
print("Unable to subscribe to channel: \(channel.name)")
} else {
print("Subscribed to \(channel.name)")
}
}
}
} else {
print("No connection data 2")
}
} else {
print("No connection data 1")
}
}