Pusher Websocket在迁移到Swift 2后没有连接

时间:2015-09-30 15:12:41

标签: websocket swift2 pusher

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

在Xcode将自己更新为7之后因为我忘了关闭计算机,并且在我花了一周时间整理出19375891237849错误后,现在我陷入了应用程序的Websocket部分,它根本不想连接。

不会抛出任何错误。 Pusher认为它已连接(PusherConnection.connected设置为true)但它无法订阅任何频道,也不会弹出错误。

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

有没有人在Xcode 7上看到过这种情况?

是否有一个设置(例如NSAllowsArbitraryLoads设置允许通过HTTP加载对象)默认阻止websockets? (不是我能想象为什么苹果会做这样的事情,也许他们开始雇用微软的开发人员或其他东西)。

1 个答案:

答案 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")
    }
}