迁移到 Swift 2 后,Pusher Websocket 未连接

Pusher Websocket not connecting after migration to Swift 2

我在大约一个月前用 Xcode 6 制作的应用程序中使用了 Starscream 和 Pusher-swift,一切正常,Pusher 已连接并能够接收消息。

在 Xcode 更新为 7 之后,因为我忘记关闭计算机,并且在我花了一周时间整理了大约 19375891237849 个错误之后,现在我卡在了应用程序的 Websocket 部分,这只是不想连接。

没有抛出任何错误。 Pusher 认为它已连接(PusherConnection.connected 设置为 true)但它无法订阅任何频道并且没有弹出错误。

我正在查看 Starscream 代码,似乎无法弄清楚发生了什么。

有没有人看到 Xcode 7 发生这种情况?

是否有默认阻止 websocket 的设置(例如 NSAllowsArbitraryLoads 设置允许通过 HTTP 加载对象)? (不是我可以想象为什么苹果会做这样的事情,也许他们开始从微软或其他公司招聘开发人员)。

问题出在 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")
    }
}