Skip to content

Commit f0d61a1

Browse files
author
Jeremy White
committed
Finished implementing app-to-app with broadcast & sendTo
1 parent 14c3814 commit f0d61a1

File tree

5 files changed

+103
-29
lines changed

5 files changed

+103
-29
lines changed

dist/connect_bridge.js

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ var connectsdk = (function () {
6565
var listeners = this._listeners && this._listeners[event];
6666
var args = Array.prototype.slice.call(arguments, 1);
6767

68-
// TODO: upper-case first char
68+
// upper-case first char
69+
// event = event.charAt(0).toUpperCase() + event.slice(1);
70+
6971
if (this["on" + event]) {
7072
this["on" + event].apply(this, args);
7173
}
@@ -130,7 +132,7 @@ var connectsdk = (function () {
130132
this.registerMediaEvents(element);
131133
this.mediaElement = element;
132134
this.mediaElement.autoPlay = true;
133-
this.emit("mediaElementUpdate", element);
135+
this.emit("MediaElementUpdate", element);
134136
this.setMediaStatus("idle");
135137
}
136138
},
@@ -186,7 +188,9 @@ var connectsdk = (function () {
186188

187189
init: nop,
188190

189-
sendMessage: nop
191+
sendMessage: nop,
192+
193+
broadcastMessage: nop
190194
});
191195

192196
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -198,7 +202,8 @@ var connectsdk = (function () {
198202
platforms.Default = {
199203
interactive: false,
200204
init: nop,
201-
sendMessage: nop
205+
sendMessage: nop,
206+
broadcastMessage: nop
202207
};
203208

204209
// webOS
@@ -305,8 +310,12 @@ var connectsdk = (function () {
305310
this.emit("message", message);
306311
},
307312

308-
sendMessage: function (message) {
309-
this.webOSAppChannels.sendMessage(message);
313+
sendMessage: function (to, message) {
314+
this.webOSAppChannels.sendMessage(to, message);
315+
},
316+
317+
broadcastMessage: function (message) {
318+
this.webOSAppChannels.broadcastMessage(message);
310319
}
311320
};
312321

@@ -324,7 +333,7 @@ var connectsdk = (function () {
324333
interactive: false,
325334
init: function () {
326335
this.mediaElement && (window.castMediaManager = new cast.receiver.MediaManager(this.mediaElement));
327-
this.on("mediaElementUpdate", this.onMediaElementUpdate, this);
336+
this.on("MediaElementUpdate", this.onMediaElementUpdate, this);
328337

329338
window.castReceiverManager = cast.receiver.CastReceiverManager.getInstance();
330339

@@ -337,6 +346,8 @@ var connectsdk = (function () {
337346
},
338347

339348
onMediaElementUpdate: function (element) {
349+
console.log('onMediaElementUpdate ' + element);
350+
340351
if (!element) {
341352
return;
342353
}
@@ -359,10 +370,24 @@ var connectsdk = (function () {
359370
message = evt.data;
360371
}
361372

362-
this.emit("message", message);
373+
this.emit("message", { from: evt.senderId, message: message });
363374
},
364375

365-
sendMessage: function (message) {
376+
sendMessage: function (to, message) {
377+
var messageString;
378+
379+
if (typeof message == 'string')
380+
window.castMessageBus.send(to, message);
381+
else
382+
{
383+
var messageString = JSON.stringify(message);
384+
385+
if (messageString)
386+
window.castMessageBus.send(to, messageString);
387+
}
388+
},
389+
390+
broadcastMessage: function (message) {
366391
var messageString;
367392

368393
if (typeof message == 'string')
@@ -465,7 +490,17 @@ var connectsdk = (function () {
465490
console.error("app channel socket not supported");
466491
},
467492

468-
sendMessage: function(message) {
493+
sendMessage: function(to, message) {
494+
var messageData = {
495+
type: "p2p",
496+
to: to, // TODO: do we need to sanitize/check this value?
497+
payload: message
498+
};
499+
500+
this._send(messageData);
501+
},
502+
503+
broadcastMessage: function(message) {
469504
var messageData = {
470505
type: "p2p",
471506
payload: message
@@ -560,7 +595,8 @@ var connectsdk = (function () {
560595
if (playState == null)
561596
return;
562597

563-
this.sendMessage({
598+
// TODO: add to id here
599+
this.broadcastMessage({
564600
contentType: 'connectsdk.mediaEvent',
565601
mediaEvent: {
566602
type: 'playState',
@@ -585,7 +621,7 @@ var connectsdk = (function () {
585621
if (contentType === 'connectsdk.mediaCommand') {
586622
this._handleMediaCommand(message);
587623
} else {
588-
this.emit('message', message.payload);
624+
this.connectManager.emit('message', { from: message.from, message: message.payload });
589625
}
590626
},
591627

0 commit comments

Comments
 (0)