2014-09-26 71 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

相關問題