})
}
- function init() {
- var eventSource = new EventSource(serverURL + ':' + serverPort + '/updateAppList');
+ function initEventSource() {
+ const eventSource = new EventSource(serverURL + ':' + serverPort + '/listenMessage');
eventSource.addEventListener('message', evt => {
- showListView(JSON.parse(evt.data));
- UpdateWebClip(JSON.parse(evt.data));
+ console.log(`evt.data : ${evt.data}`);
+ const message = JSON.parse(evt.data);
+ switch (message.type) {
+ case 'updateapp-list':
+ showListView(message.body);
+ UpdateWebClip(message.body);
+ break;
+ case 'redirect-url':
+ const body = JSON.parse(message.body);
+ window.open(body.url, '_blank');
+ break;
+ case 'remote-message':
+ document.dispatchEvent(new CustomEvent('remotemessage', message.body));
+ break;
+ case 'ime-event':
+ break;
+ default:
+ console.log(`no matched case : ${message.type}`);
+ }
}, false);
eventSource.addEventListener('open', evt => {
console.log("Connected to...");
console.log('Connecting to...');
}
}, false);
+ }
+
+ function init() {
+ initEventSource();
showList();
}
window.onload = init;
cookie: {
httpOnly: true,
secure: false,
-}});
+ }
+});
const PUBLIC_DOMAIN = 'https://devicehome.net';
const TAG = '[DeviceHome][service.js]'
});
console.log(`${TAG} Emit app list`);
// for both companion and webclip
- evtEmit.emit('updateapplist', 'message', dataApps);
+ evtEmit.emit('updateapp-list', 'message', dataApps);
relayServer(httpserver, dataApps, sessionMiddleware, clientPublicKeys, packageInfo.id);
} else {
- evtEmit.emit('updateapplist', 'message', dataApps);
+ evtEmit.emit('updateapp-list', 'message', dataApps);
}
},
onupdated: function(packageInfo) {
}
console.log(`${TAG} The package ${packageId} is uninstalled`);
removeD2Ddata(packageId);
- evtEmit.emit('updateapplist', 'message', dataApps);
+ evtEmit.emit('updateapp-list', 'message', dataApps);
}
};
tizen.package.setPackageInfoEventListener(packageEventCallback);
}
+function registerWrtMessagePort() {
+ let localPort = tizen.messageport.requestLocalMessagePort('wrt.message.port');
+ localPort.addMessagePortListener((data, remotePort) => {
+ try {
+ evtEmit.emit(data[0]['key'], 'message', data[0]['value']);
+ } catch (e) {
+ console.log('wrt.message.port has exception' + e);
+ }
+ });
+}
+}
+
function unsetPackageInfoEventListener() {
tizen.package.unsetPackageInfoEventListener();
}
'Cache-Control': 'no-cache',
'Connection': 'keep-alive'
});
- evtEmit.on('updateapplist', (event, data) => {
+ evtEmit.on('updateapp-list', (event, data) => {
res.write('event: ' + String(event) + '\n' + 'data: ' + JSON.stringify(data) + '\n\n');
});
});
+ app.get('/listenMessage', (req, res) => {
+ res.writeHead(200, {
+ 'Content-Type': 'text/event-stream',
+ 'Cache-Control': 'no-cache',
+ 'Connection': 'keep-alive'
+ });
+ const eventTypes = ['updateapp-list', 'redirect-url', 'remote-message', 'ime-event'];
+ for (const type of eventTypes) {
+ evtEmit.on(type, (event, data) => {
+ res.write(`event: ${event}\ndata: { "type": "${type}", "body": ${JSON.stringify(data)}}\n\n`);
+ });
+ }
+ });
+
app.get('/pincode/publicKey', async (req, res) => {
tryCount = 0;
await displayPincode(req);
console.log(`${TAG} Server Terminated`);
}
unsetPackageInfoEventListener();
- evtEmit.off('updateapplist');
+ evtEmit.off('updateapp-list');
console.log(`${TAG} onStop is called in DNS Resolver`);
};