Search code examples
swiftgoogle-castgoogle-cast-sdk

GoogleCast iOS sender, v4, not sending messages


On version 2, the sender app was able to send messages.

func deviceManager(_ deviceManager: GCKDeviceManager!,
didConnectToCastApplication
applicationMetadata: GCKApplicationMetadata!,
sessionID: String!,
launchedApplication: Bool) {
  deviceManager.add(self.textChannel)
}

However, the API says that we are now using GCKSessionManager instead of GCKDeviceManager.

The API says I must have a GCKSession add the textChannel, which I did here: Once the session starts, I add the textChannel (because sessionManager.currentCastSession was nil before the session started).

func sessionManager(_ sessionManager: GCKSessionManager, didStart session: GCKSession) {
    if session.device == connectionQueue {
        connectionQueue = nil
    }
    self.sessionManager!.currentCastSession!.add(textChannel)
    print("")
}

Meanwhile, I send the text message in another function:

let result = self.textChannel.sendTextMessage("\(self.textField.text)", error: &error)

But the result is always false, and the error is always "Channel is not connected or is not registered with a session". In addition, when I do:

print("isConnected1 \(self.textChannel.isConnected)")

the result is false. Do you know what other steps I am missing for it to be connected?


Solution

  • Just learned that it was an issue of my namespace. It connects now. Problem was the namespace wasn't matching the namespace from my receiver code.

    fileprivate lazy var textChannel:TextChannel = {
    return TextChannel(namespace: NAMESPACE)
    }()