Chromecast не может получать пользовательские сообщения (CAF Receiver)

Я работаю со встроенной программой-оберткой для Google Cast SDK и не могу отправить сообщение от отправителя получателю. Я могу разыграть медиа или приостановить и возобновить его. Проблема только в пользовательских сообщениях. Мой пользовательский прослушиватель сообщений никогда не вызывается на стороне получателя. Должно ли сообщение иметь конкретную структуру, которую мне не хватает? Заранее спасибо.

Отправитель:

  GoogleCast.initChannel('urn:x-cast:testChannel');

  GoogleCast.sendMessage('urn:x-cast:testChannel', 'testMessage');

Получатель:

const context = cast.framework.CastReceiverContext.getInstance();
const CUSTOM_CHANNEL = 'urn:x-cast:testChannel';
context.addCustomMessageListener(CUSTOM_CHANNEL, function(customEvent) {
    // handle customEvent.
    console.log('event received');
});

Изменить: Я могу отправить сообщение от получателя отправителю:

Получатель:

context.sendCustomMessage(CUSTOM_CHANNEL , undefined,  'myMessage');

Отправитель:

GoogleCast.EventEmitter.addListener(GoogleCast.CHANNEL_MESSAGE_RECEIVED, ({undefined, message}) => {
  console.log(message);
}); 

0 ответов

Я думаю, это проблема ниже

https://issuetracker.google.com/issues/117136854

Так что попробуйте это...

послать

let message = {msg: 'testMessage'};
message = JSON.stringify(message);

GoogleCast.sendMessage('urn:x-cast:testChannel', message);

и получатель

  const CHANNEL = 'urn:x-cast:testChannel';
  const ctx = cast.framework.CastReceiverContext.getInstance();
  const options = new cast.framework.CastReceiverOptions();
  const objToSender = 
  {
    type: 'status',
    message: 'Playing'
  };

  options.customNamespaces = Object.assign({});
  options.customNamespaces[CHANNEL] = cast.framework.system.MessageType.JSON;

  //receiving sender message
  ctx.addCustomMessageListener(CHANNEL,  customEvent => document.getElementById("main").innerHTML = customEvent.data.msg);

  //message to sender app
  ctx.sendCustomMessage(CHANNEL, objToSender);

  ctx.start(options);
Другие вопросы по тегам