3.설치 및 기본 사용

Edit

3.1런처 서비스 설치

3.1.1PC에 런처 서비스 설치하고 윈도우 서비스 등록하기

런처 서비스는 윈도우 서비스로 등록되어 동작합니다. 런처를 사용하기 위해서는 먼저 윈도우 서비스를 등록해야 합니다.

1

설치 파일을 내려받아 관리자 권한으로 실행합니다.

설치 시 관리자 권한으로 실행하지 않은 경우에는 서비스 동작 시 오류가 발생할 수 있습니다.

런처 서비스 설치 시 설치 마법사 화면이 표시되지 않도록 하려면 "/VERYSILENT", "/SILENT" 옵션을 사용할 수 있습니다. "/VERYSILENT" 옵션은 설치 파일 실행 시 아무런 메시지 없이 서비스가 설치됩니다. "/SILENT" 옵션은 사용자의 조작 없이 설치 진행 상태만 표시하고 서비스가 설치됩니다.

TPLSvc_Setup.exe /VERYSILENT
TPLSvc_Setup.exe /SILENT

2

설치 마법사 화면이 실행됩니다. [Insatll] 버튼을 클릭하고 설치를 진행합니다. 설치가 완료되면 윈도우 서비스로 등록되고 자동으로 실행됩니다.

[제어판 > 시스템 및 보안 > 관리자 도구 > 서비스] 항목에서 등록된 서비스가 동작하는 것을 확인할 수 있습니다. 해당 창에서 서비스를 중지하거나 다시 시작할 수 있습니다.

3.1.2PC에서 런처 서비스 삭제하기

1

설치된 앱(프로그램) 목록에서 TPLSvc 항목을 찾아 [제거] 버튼을 클릭합니다.

2

삭제 여부를 확인합니다. [예] 버튼을 클릭하면 삭제가 진행됩니다. 등록된 서비스가 해제되고 런처 서비스가 삭제됩니다.

3.1.3특정 포트에서 서비스가 실행하도록 지정하기

런처 서비스는 사용하는 포트가 지정되어 있는데, 이를 변경하고자 하는 경우에는 명령 프롬프트에서 직접 파라미터를 지정해 서비스를 실행할 수 있습니다.

1

런처 서비스가 설치된 경로를 확인합니다. 아래 경로에서 설치된 실행 파일을 확인할 수 있습니다.

C:\Program Files (x86)\TPLSvc\TPLSvc.exe

2

관리자 권한으로 명령 프롬프트를 실행하고 아래와 같이 파라미터를 지정해 윈도우 서비스를 해제할 수 있습니다. 런처 서비스를 삭제하는 것이 아니라 등록된 서비스만 해제합니다.

TPLSvc_Setup.exe –r false

3

서비스를 다시 등록하기 위해서는 아래와 같이 실행합니다.

TPLSvc_Setup.exe –r true

런처는 7895~7935 대역 내 포트 중 하나를 사용합니다. 런처가 실행되는 시스템에 다른 서비스가 해당 포트를 이미 사용하고 있다면 포트를 변경해 사용할 수 있습니다. 이런 경우에는 서비스 등록 시 포트를 지정하는 파라미터(-p 포트번호1, -p 포트번호2 ... -p 포트번호n)를 추가로 지정합니다.

예를 들어 8080포트와 8888포트를 사용하고자 한다면 아래와 같이 서비스를 등록합니다.

TPLSvc_Setup.exe –r true –p 8080 –p 8888

3.2동작 방식

런처 서비스와 웹브라우저 간 동작 방식을 간단하게 설명하면 아래 표와 같습니다.

런처 서비스


웹브라우저

(2) id 할당 및 저장 후 id 반환

(1) 신규 id 요청 (create)

(4) 필수 속성 저장 후 결과값 반환

(3) 필수 속성 설정 (setproperty)

메소드 실행 후 결과값 반환

메소드 실행 요청 (method)

속성 정보 반환

속성 정보 요청 (getproperty)

이벤트 정보 반환

이벤트 정보 요청 (event)

id에 해당하는 정보삭제

id에 해당하는 정보삭제요청 (destroy)

3.3기본 설정

3.3.1주소 설정

주소 설정은 필수 부분과 추가 부분으로 구분할 수 있습니다. 필수 부분에 추가 부분을 조합해 사용합니다.

필수 부분

로컬주소, 포트, 예약어(launcher)

추가 부분

플랫폼명, 타임스탬프

http://127.0.0.1:7895/launcher/nexacro/123456789
http://127.0.0.1:7895/launcher/xplatform/123456789
http://127.0.0.1:7895/launcher/miplatform/123456789

3.3.2기본 요소 설정

기본적으로 설정하는 요소는 platform, action, id, value입니다. 각 용도에 맞게 설정합니다.

platform

플랫폼을 나타내는 문자열입니다. 제품에 따라 아래 3가지 중 하나를 지정할 수 있습니다.

nexacro, xplatform, miplatform

action

런처 서비스에 요청할 동작 문자열을 지정합니다. 아래와 같은 동작을 지정할 수 있습니다.

동작

설명

create

런처 서비스에서 최초 id를 할당받을 때

destroy

할당받은 id에 해당하는 정보를 런처 서비스에서 삭제

setproperty

속성 설정

getproperty

속성 정보 확인

method

메소드 실행

event

이벤트 관련 정보 확인

check

런처 서비스 버전 정보 확인

id

런처 서비스로부터 할당받은 문자열이며 반드시 최초 동작 시 요청해야 합니다.

value

동작에 대한 구체적인 JSON 형식의 정보이며 동작에 따라 구성이 다릅니다.

최초 id를 할당받기 위한 JSON : value 없음, 결과로 id가 전달됨

var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'create';
//objXP.id = ''; // 통신이 성공하면 정보가 채워지므로 생략해도 무관합니다.

관련 속성 설정을 위한 JSON

var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'setproperty';
objNexacro.value = {"property name" : property value, ... };

설정된 속성값을 확인하기 위한 JSON

var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'getproperty';
objNexacro.value = {"property name" : "", ... };

메소드 호출을 위한 JSON

var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'method';
objNexacro.value = {"method name": {"param": method parameter array, "result": }};

이벤트 정보를 확인하기 위한 JSON

var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'event';
objNexacro.value = {"event name" : {...}};

런처 서비스 버전 정보 확인을 위한 JSON

var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'check';
objNexacro.value = {"getlauncherversion": {}};

3.3.3데이터 전송

데이터 전송 방식은 GET 방식과 POST 방식으로 구분합니다.

GET 방식은 주소 뒤에 ?와 JSON 형식의 문자열이 첨부됩니다

var objNexacro = new Object();
var xhrObject = new XMLHttpRequest();
xhrObject.onreadystatechange = resultProcess;
var jsonData = JSON.stringify(objNexacro);
var openurl = "http://127.0.0.1/launcher/nexacro/"+new Date().getTime();
xhrObject.open("GET", openurl+"?"+jsonData, "true");
xhrObject.send(null);

POST 방식은 send 메소드 파라미터에 JSON 형식의 문자열이 첨부됩니다

var objNexacro = new Object();
var xhrObject = new XMLHttpRequest();
xhrObject.onreadystatechange = resultProcess;
var jsonData = JSON.stringify(objNexacro);
var openurl = "http://127.0.0.1:80/launcher/nexacro/"+new Date().getTime();
xhrObject.open("POST", openurl, "true");
xhrObject.send(jsonData);

데이터 전송은 JSON 형식의 문자열을 구성하면 어떤 식으로든 처리할 수 있습니다. stringify 메소드를 지원할 수 없거나 직접 설정하기 원한다면 다음과 같은 형태로 문자열을 만들어 처리합니다.

create
'{"platform":"nexacro","action":"create"}'
launch method
id값은 create에서 받은 값으로 치환해야 합니다.
'{"platform":"nexacro","id":"12345678","action":"method", "value":{ "launch":
null }}'

3.3.4통신 결과 처리

JSON 형식의 문자열 데이터를 적절히 변환해 처리합니다.

var result = xhrObject.responseText; // xhrObject는 XMLHttpRequest임
var objResult = eval('(' + result + ')');

처리결과가 성공이라면 result 문자열이 'success' 로 처리됩니다.

if(objResult.result == "success" && objResult.id.length > 0)
{
    objNexacro = objResult; // objXP는 송신정보를 담고 있었던 객체임
}    else    {
    window.console.log("error!!!");
}