我的答案看起来很高很低,我似乎无法找到任何内容,Google's Docs似乎不完整,因为发送给自定义接收器的邮件问题。
StackOverflow上的先前答案似乎只是使用了V1接收器API,它似乎不适用于V2 API。
有人能指出我正确的方向,只是解释如何使用V2 API从Chrome发件人应用程序向接收者发送消息吗?
答案 0 :(得分:16)
在发件人方面,您可以通过会话侦听器中获得的会话对象发送消息:
session.sendMessage(namespace, message, onSuccess, onFailure);
https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Session#sendMessage
在接收方,您可以创建消息总线并侦听传入的消息:
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
您可以自己定义namespace
,但在发件人和收件人中必须相同,并以urn:x-cast:
为您要发送的信息定义正确的消息类型非常重要,但JSON可能是最通用的。
您还可以使用消息总线将消息发送回发件人:
messageBus.send(senderId, message);
在发件人方面有一个监听器:
session.addMessageListener(namespace, function (ns, message) {
});
https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Session#addMessageListener
我还在Github上提供了一个非常简单的Chrome Sender / Custom Receiver样本,其中包含完整的发送消息的实现: https://github.com/Scarygami/chromecast_experiments/tree/master/photocast
答案 1 :(得分:0)
作为@scarygami答案的更新,如果您需要对CAF(API v3)进行同样的操作,这就是在接收方监听消息的方式
const context = cast.framework.CastReceiverContext.getInstance();
context.addCustomMessageListener('urn:x-cast:<your-namespace>', event => {
console.log('CustomMessage: ', event);
});