-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcast.js
executable file
·127 lines (97 loc) · 4.12 KB
/
cast.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
window.debug = true;
function checkDebug() {
if (window.debug) {
document.getElementById('debug').style.display = 'block';
document.getElementById('maze').style.margin = '30px';
} else {
document.getElementById('debug').style.display = 'none';
document.getElementById('maze').style.margin = '30px auto';
}
}
$(document).ready(function () {
// TODO: 1. ------------------ Get castreceiver manager
//window.castReceiverManager = {}; // TODO get CastReceiverManager
window.castReceiverManager = cast.receiver.CastReceiverManager.getInstance();
log('Starting receiver manager');
cast.receiver.logger.setLevelValue(cast.receiver.LoggerLevel.DEBUG);
window.castReceiverManager.onReady = function (event) {
log('Received ready event ' + JSON.stringify(event.data));
window.castReceiverManager.setApplicationState("Application status is ready...");
};
//TODO: 2. ------------------ Get castReceiverManager message bus
//window.messageBus = window.castReceiverManager.getCastMessageBus('urn:x-cast:se.johan.workshop.cast.maze');
window.messageBus = window.castReceiverManager.getCastMessageBus('urn:x-cast:fr.xebia.workshop.cast.maze');
//window.castReceiverManager.getCastMessageBus('urn:x-cast:fr.xebia.workshop.cast.maze');
/**
* If provided, it processes the 'senderconnected' event.
* Called to process the 'senderconnected' event.
* @param {cast.receiver.CastReceiverManager.Event} event - can be null
*
*/
window.castReceiverManager.onSenderConnected = function(event) {
// TODO: 4. ------------------onSenderConnected call addPlayer(<id>)
log('Received sender connected event ' + event.data);
addPlayer(event.senderId);
}
/**
* When sender disconnect
* @param event
*/
window.castReceiverManager.onSenderDisconnected = function (event) {
log('Received sender disconnected event ' + event.data);
removePlayer(event.senderId);
if (window.castReceiverManager.getSenders().length == 0) {
window.close();
}
};
/**
* When message received
* @param event object
*/
window.messageBus.onMessage = function (event) {
log('Message [' + event.senderId + '] ' + event.data);
// TODO: 5 ------------------call method to move player with direction
handleMessage(event.data, event.senderId);
};
/**
* Application config
**/
var appConfig = new cast.receiver.CastReceiverManager.Config();
/**
* Text that represents the application status. It should meet
* internationalization rules as may be displayed by the sender application.
* @type {string|undefined}
**/
appConfig.statusText = 'Ready to play';
/**
* Maximum time in seconds before closing an idle
* sender connection. Setting this value enables a heartbeat message to keep
* the connection alive. Used to detect unresponsive senders faster than
* typical TCP timeouts. The minimum value is 5 seconds, there is no upper
* bound enforced but practically it's minutes before platform TCP timeouts
* come into play. Default value is 10 seconds.
* @type {number|undefined}
**/
appConfig.maxInactivity = 6000; // 10 minutes for testing, use default 10sec in prod by not setting this value
/**
* Start receiver
* Initializes the system manager. The application should call this method when
* it is ready to start receiving messages, typically after registering
* to listen for the events it is interested on.
*/
// TODO: 3. ------------------ start CastReceiverManager
window.castReceiverManager.start(appConfig);
log('Receiver manager started');
/**
* Misc method to log into console box in web view
* @param msg message to log
*/
function log(msg) {
if (window.debug) {
var debug = document.getElementById('debug');
var tmpHTML = debug.innerHTML;
debug.innerHTML = '';
debug.innerHTML = msg + '<br/>' + tmpHTML;
}
}
});