我正在尝试通过github项目," CastHelloText-chrome"在: https://github.com/googlecast/CastHelloText-chrome
我已经阅读了样本和官方文档。目前我正在尝试将简单的字符串传递给发件人。
这是我的功能:
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()函数执行以下操作:
//如果指定的端口ID在此上下文中,则返回true。这是用来的 function hasPort(portId){ 在port中返回portId; }; // C ++避免为所有上下文创建javascript消息 //不要关心特定的消息。
以上似乎是我从自定义接收器引用的JS SDK的一部分。它永远不会过去,所以我确信我做错了但是没有像moi这样的假人的例子:))
更新Ali 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:client-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)值。
我很困惑。
我还没有尝试过广播信息,但与发送者直接沟通似乎是一种更好的做法?
谢谢!
答案 0 :(得分:1)
发送方法是:send(senderId, message)
所以我不清楚你传递的发件人ID是什么;这应该是接收器SDK在加入/启动会话时分配给该发送方的唯一发送方ID。如果您不关心一个发件人与所有连接的发件人,请使用broadcast(message)