2014-09-26 74 views
0

我试图在通过GitHub的项目合作,“CastHelloText铬”: https://github.com/googlecast/CastHelloText-chrome如何使用Chromecast从自定义接收者向发件人应用发送消息?

我已通过样品和官方文件。目前我正在尝试将简单的字符串传递给发件人。

这是我的函数:

function DispatchToSender() { 
     debugger; 
     try { 
      if (window.messageBus == null) { 
       window.messageBus = 
      window.castReceiverManager.getCastMessageBus(
       'urn:x-cast:com.radiodile.mobilex'); 
      } 
      //I now pass in "theSenderID" based on Ali's comment 
      window.messageBus.send(theSenderID, "This gun's for hire"); 
     } catch (e) { 
      console.log("Dispath to sender exception: " + e); 
     } 


    } 

这无助和文档是在这个用例非常稀疏(至少对我的过热的大脑)

能有人给我的一个微调正确的方向吗?

谢谢!

PS - 我DispatchToSender()函数不会步入以下:

//如果指定的端口号是在这种情况下返回true。这由 函数使用hasPort(portId){ 端口返回portId; }; // C++避免为所有上下文创建javascript消息,这些上下文不会关心特定的消息。

以上似乎是我的自定义接收器的JS SDK我参考的一部分。它从来没有得到过去那种让我确信我做错了什么,但也有对假人MOI :))

更新阿里Naddaf的评论没有例子 - 仍然没有运气

我读过你的评论先生,并尝试以下。

receiver.html

从receiver.html初始化 - 我设置页面级变量, “theSenderID” 到event.senderId值

//处理程序CastMessageBus消息事件

window.messageBus.onMessage = function (event) { 
     console.log('Message [' + event.senderId + ']: ' + event.data); 
     theSenderID = event.senderId; // CAPTURE THE SENDER ID FOR RE-USE IN DISPATCH EVENT FN() 
     // display the message from the sender 
     displayText(event.data); 
     // inform all senders on the CastMessageBus of the incoming message event 
     // sender message listener will be invoked 
     window.messageBus.send(event.senderId, event.data); 
    } 

然后我试图在DispatchEvent发送消息,像这样()函数,我写道:

window.messageBus.send(theSenderID,“这枪的雇用“);

在上面我有theSenderID的值,它是:“6:客户54624”

当我打电话window.messageBus.send我看不出有什么异常,但在我的发送者的应用程序我从来没有收到消息:

chromehellotext.html

/** 
    * utility function to log messages from the receiver 
    * @param {string} namespace The namespace of the message 
    * @param {string} message A message string 
    */ 
    function receiverMessage(namespace, message) { 
     appendMessage("receiverMessage: " + namespace + ", " + message); 
    }; 

请注意,我用我的senderId创建,因为发件人的“receiverMessage()”函数的第一个参数的自定义命名空间读取您的评论之前。

receiverMessage()确实工作并且拦截了chromehellotext示例的接收器的DisplayText()函数中的setApplicationState(text)值。

我完全困惑。

我还没有尝试广播消息,但它似乎是一个更好的做法直接与发件人沟通?

谢谢!

回答

1

发送方法是:send(senderId, message)所以我不清楚你传递的发件人ID是什么;这应该是接收方SDK在加入/启动会话时分配给该发件人的唯一发件人ID。如果你不关心一个发件人vs所有连接的发件人,请使用broadcast(message)

+0

嗨Ali,请参阅我添加的**更新**。我确实试图按照你的评论的要点,但我迄今为止不成功。谢谢! – Krafty 2014-09-26 20:12:46

+0

不知道为什么它几分钟前不工作。我回来更新帖子,并将发送者和接收者都置于调试模式。经过一些更多的搜索和搜索之后,我再次触发事件序列,这次.send()方法按照您的指示与senderid协同工作。非常感谢你! – Krafty 2014-09-26 20:26:43

相关问题