我正在尝试通过以下网址完成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。由函数hasPort(portId){返回端口中的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);
};
请注意,在阅读您的评论之前,由于发件人的“ receiverMessage()”函数中的第一个参数,我使用的是我创建的自定义命名空间作为senderId。
receiverMessage()确实可以正常工作,并且正在拦截chromehellotext示例的接收器的DisplayText()函数中的setApplicationState(text)值。
我很困惑。
我没有尝试广播消息,但是与发件人直接通信似乎是一种更好的做法?
谢谢!!
send方法是:send(senderId, message)
因此,我不清楚您要传递的发件人ID是什么;该名称应该是接收方SDK在加入/启动会话时分配给该发送方的唯一发送方ID。如果您不关心一个发件人还是所有连接的发件人,请使用broadcast(message)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句