var app = tizen.application.getCurrentApplication();
var gServiceAppId = "r9vrpxzuyp.HybridServiceApp";
-var gWsUri = "ws://127.0.0.1:8080/ipc?src=" + app.appInfo.id + ".HybridWebApp&dest=r9vrpxzuyp.HybridServiceApp";
-var gWebSocket;
+var gServicePortName = "SAMPLE_PORT";
+var gLocalMessagePortName = "SAMPLE_PORT_REPLY";
+
+var gLocalMessagePort;
+var gRemoteMessagePort;
+
+var gLocalMessagePortWatchId;
+
var isStarting = false;
$(document).delegate("#main", "pageinit", function() {
$("#btn-start").bind("vclick", function(){
- if(gWebSocket) {
+ if(gLocalMessagePort) {
alert("Already Started");
} else if(isStarting){
alert("Now starting...");
return false;
});
$("#btn-stop").bind("vclick", function(){
- if(gWebSocket) {
+ if(gRemoteMessagePort) {
sendCommand("stop");
} else {
alert("Not Started");
});
});
-function startWebSocket() {
- gWebSocket = new WebSocket(gWsUri);
+function startMessagePort() {
+ try {
+ gLocalMessagePort = tizen.messageport.requestLocalMessagePort(gLocalMessagePortName);
+ gLocalMessagePortWatchId = gLocalMessagePort.addMessagePortListener( function(data, remote) {
+ onReceive(data, remote);
+ });
+ } catch (e) {
+ writeToScreen(e.name);
+ }
+
+ try {
+ gRemoteMessagePort = tizen.messageport.requestRemoteMessagePort(gServiceAppId, gServicePortName);
+ } catch (e) {
+ writeToScreen(e.name);
+ }
+
isStarting = false;
- gWebSocket.onopen = function(evt) {
- onOpen(evt);
- };
- gWebSocket.onclose = function(evt) {
- onClose(evt);
- };
- gWebSocket.onmessage = function(evt) {
- onMessage(evt);
- };
- gWebSocket.onerror = function(evt) {
- onError(evt);
- };
+ sendCommand("connect");
}
function sendCommand(command){
var jsondata = '{"command" : "' + command + '"}';
- gWebSocket.send(JSON.stringify(jsondata));
+ gRemoteMessagePort.sendMessage([ { key:"command", value:command } ], gLocalMessagePort);
writeToScreen("Sending: " + command);
}
-function onOpen(evt) {
- writeToScreen("Ready");
- sendCommand("connect");
-}
+function onReceive(data, remote) {
+ var message;
-function onClose(evt) {
- writeToScreen("Disconnected");
- gWebSocket = null;
-}
-
-function onMessage(evt) {
- var message = JSON.parse(evt.data).server;
+ for(var i in data) {
+ if(data[i].key == "server")
+ message = data[i].value;
+ }
writeToScreen("Received : " + message);
sendCommand("start");
}else if(message == "stopped"){
sendCommand("exit");
- gWebSocket.close();
}else if(message == "exit"){
- gWebSocket.close();
+ if(gRemoteMessagePort)
+ gRemoteMessagePort = null;
+ if(gLocalMessagePort) {
+ gLocalMessagePort.removeMessagePortListener(gLocalMessagePortWatchId);
+ gLocalMessagePort = null;
+ }
}
}
-function onError(evt) {
- writeToScreen("ERROR:" + evt.data);
-}
-
function writeToScreen(message) {
var today = new Date(),
- time = today.getFullYear() + "-" + today.getMonth() + "-" + today.getDate() + " "
+ time = today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate() + " "
+ today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds() + "." + today.getMilliseconds(),
str = '<li class="ui-li-has-multiline ui-li-text-ellipsis">'
+ message
function onGetAppsContextSuccess(contexts) {
for (var i = 0; i < contexts.length; i++) {
var appInfo = tizen.application.getAppInfo(contexts[i].appId);
- console.log(appInfo.id);
if(appInfo.id == gServiceAppId){
console.log("Running Service App found");
break;
}
if (i >= contexts.length) {
console.log("Running Service App not found. Trying to launch it");
- listInstalledApps();
+ launchServiceApp();
+ //listInstalledApps();
}else{
- startWebSocket();
+ startMessagePort();
}
}
}
if(i >= apps.length){
writeToScreen("Service App not installed");
+ isStarting = false;
return;
}
launchServiceApp();
function getAppsInfoErrorCB(err) {
console.log("getAppsInfo failed");
+ isStarting = false;
}
-function launchServiceApp(){
+function launchServiceApp() {
function onSuccess() {
console.log("Service App launched successfully!");
console.log("Restart...");
function onError(err) {
console.log("Service Applaunch failed");
+ isStarting = false;
}
try {
+ console.log("Launching [" + gServiceAppId + "] ...");
tizen.application.launch(gServiceAppId, onSuccess, onError);
} catch (exc) {
alert("launch exc:" + exc.message);