2014-04-29 11 views
5

Ich habe Hochs und Tiefs nach einer Antwort gesucht und ich kann nichts zu finden scheinen, scheinen Google's Docs auf die Frage der Nachricht unvollständig einem benutzerdefinierten Empfänger zu senden.Senden von Nachrichten vom Absender zum Empfänger Benutzerdefinierte mit Chrome Empfänger API V2

Auch frühere Antworten auf StackOverflow scheinen nur die V1 Receiver API zu verwenden, die nicht mit der V2 API zu funktionieren scheinen.

Könnte mich jemand in die richtige Richtung weisen, um einfach zu erläutern, wie Sie mit der V2 API eine Nachricht von einer Chrome Sender App an einen Empfänger senden?

Antwort

15

Auf der Senderseite Sie Nachrichten über das Session-Objekt senden können Sie in der Sitzung Zuhörer erhalten:

session.sendMessage(namespace, message, onSuccess, onFailure); 

https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Session#sendMessage

Auf der Empfängerseite eine Meldung Bus erstellen und für eingehende Nachrichten hören:

messageBus = castReceiverManager.getCastMessageBus(
    namespace, 
    cast.receiver.CastMessageBus.MessageType.JSON 
); 

messageBus.onMessage = function(event) { 
    var sender = event.senderId; 
    var message = event.data; 
}; 

https://developers.google.com/cast/docs/reference/receiver/cast.receiver.CastReceiverManager#getCastMessageBus https://developers.google.com/cast/docs/reference/receiver/cast.receiver.CastMessageBus

können Sie definieren die namespace selbst, aber es muss das gleiches in Sender und Empfänger sein und mit urn:x-cast:

starten Und es ist wichtig, den richtigen Nachrichtentyp für die Informationen, die Sie gehen zu senden, aber JSON ist wahrscheinlich zu definieren das vielseitigste.

Sie können auch den Nachrichten-Bus verwenden, um Nachrichten an den Absender zurück zu senden:

messageBus.send(senderId, message); 

mit einem Zuhörer auf der Senderseite:

session.addMessageListener(namespace, function (ns, message) { 

}); 

https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Session#addMessageListener

auch ich habe sehr einfache Chrome Sender/Custom Receiver Probe auf Github mit einer vollständigen Implementierung des Sendens von Nachrichten: https://github.com/Scarygami/chromecast_experiments/tree/master/photocast

+1

Danke Mann! : D Konnte dich jetzt umarmen. – 2xAA

+0

@Scarygami, können Sie bitte erklären, wie Sie diesen benutzerdefinierten Empfänger ordnungsgemäß auf den Chromecast hochladen. Reicht es nur aus, den direkten Link zur .js-Datei in Cast Console zu setzen? – AnZ

+2

Ich erhalte immer einen Fehler invalid_parameter Ungültiger Namespace, wenn ich session.sendMessage(), @Scarygami anrufe, wüsstest du warum? – Capaj