Не могу подписаться на приватный канал в Pusher ios swift - PullRequest
0 голосов
/ 13 октября 2018

Мой внутренний сервер использует аутентификацию токена, поэтому я пытаюсь подписаться на частный канал, и я сделал, как говорится в руководстве, реализуя «AuthRequestBuilderProtocol», но точка останова в функции (requestFor) никогда не достигается, и яне могу подписаться на канал.вот руководство, которому я следую: https://github.com/pusher/pusher-websocket-swift#configuration

А вот мой код до сих пор

var pusher: Pusher!
    func initPusher() {
        if UserDefaultsAccess.sharedInstance.token != "" {
            let opt = PusherClientOptions(authMethod: AuthMethod.authRequestBuilder(authRequestBuilder: AuthRequestBuilder()))
            pusher = Pusher(key: "************", options: opt)
            pusher.connection.delegate = self
            pusher.delegate = self
            let channel = pusher.subscribe ("private-user.\(UserDefaultsAccess.sharedInstance.getCurrentAccount().userId)")
            let eventName = "App\\Enemts\\MessageSent"
            _ = channel.bind(eventName: eventName, callback: { (data: Any?) -> Void in
                if let data = data as? [String: AnyObject] {
                    let text = data["message"] as! String
                    let author = data["name"] as! String
                    print(author + ": " + text)
                }
            })
            pusher.connect()
        }
    }

А вот реализация протокола:

class AuthRequestBuilder: AuthRequestBuilderProtocol {
    func requestFor(socketID: String, channelName: String) -> URLRequest? {
        var request = URLRequest(url: URL(string: "****************/auth")!)
        request.httpMethod = "POST"
        request.httpBody = "socket_id=\(socketID)&channel_name=\(channelName)".data(using: String.Encoding.utf8)
        request.addValue(UserDefaultsAccess.sharedInstance.token, forHTTPHeaderField: "Authorization")
        request.addValue("application/json", forHTTPHeaderField: "Accept")
        return request
    }
}
...