XPlusAgent MainScreen 가이드

이 화면은 XPlusAgent의 메인 화면에 대한 예시화면이다.

자세한 내용은 doc/92_xFrame5_Browser_Guide.pdf 문서를 참조한다. 브라우저 영역에 대한 샘플은 XPLUS/xplus_browsermain 화면을 참조한다.

템플릿 위치: /XPLUS/xplus_agentmain

템플릿 파일

// XFRAME5BROWSER 프로세스 ID
var XFRAME5_BROWSER_PID = 0;


/**
 * 웹소켓 세션이 연결되면 발생하는 이벤트 처리
 * @param objInst XPlusWebSockSvr 오브젝트
 * @param pRemoteIpAddr 원격지 시스템의 IP 주소
 * @param nRemotePortNo 원격지 시스템의 TCP 포트 번호
 * @param nSocketKey 원격지 시스템 연결 소켓 키 값
 */
function objWSockSvr_OnConnect(objInst,pRemoteIpAddr,nRemotePortNo,nSocketKey)
{
	factory.consoleprint("OnConnect> pRemoteIpAddr = " + pRemoteIpAddr);
	factory.consoleprint("OnConnect> nRemotePortNo = " + nRemotePortNo);
	factory.consoleprint("OnConnect> nSocketKey = " + nSocketKey);
}

/**
 * 웹소켓 세션이 해제되면 발생하는 이벤트 처리
 * CloseSession 함수 호출시에는 이벤트가 발생하지 않는다.
 * @param objInst XPlusWebSockSvr 오브젝트
 * @param pRemoteIpAddr 세션이 해제된 시스템의 IP 주소
 * @param nRemotePortNo 세션이 해제된 시스템의 TCP 포트 번호
 * @param nSocketKey 원격지 시스템 연결 소켓 키 값
 */
function objWSockSvr_OnClose(objInst,pRemoteIpAddr,nRemotePortNo,nSocketKey)
{
	factory.consoleprint("OnClose> pRemoteIpAddr = " + pRemoteIpAddr);
	factory.consoleprint("OnClose> nRemotePortNo = " + nRemotePortNo);
	factory.consoleprint("OnClose> nSocketKey = " + nSocketKey);

	// XFrame5Browser와 연결된 세션 해제시 XPlusAgent 종료함
	factory.browserexit();
}

/**
 * 웹소켓 서버 데이터 수신 이벤트 처리
 * @param objInst XPlusWebSockSvr 오브젝트
 * @param pRemoteIpAddr 데이터를 송신한 시스템의 IP 주소
 * @param nRemotePortNo 데이터를 송신한 시스템의 TCP 포트 번호
 * @param nSocketKey 원격지 시스템 연결 소켓 키 값
 * @param nLength 수신한 데이터 길이
 * @param pTranKey 수신한 데이터에 대한 Key값, GetData 함수에서 사용됨
 */
function objWSockSvr_OnReceive(objInst,pRemoteIpAddr,nRemotePortNo,nSocketKey,nLength,pDataKey)
{
	var strRecvData;

	factory.consoleprint("OnReceive> pRemoteIpAddr = " + pRemoteIpAddr);
	factory.consoleprint("OnReceive> nRemotePortNo = " + nRemotePortNo);
	factory.consoleprint("OnReceive> nSocketKey = " + nSocketKey);
	factory.consoleprint("OnReceive> nLength = " + nLength);
	factory.consoleprint("OnReceive> pDataKey = " + pDataKey);

	strRecvData = objWSockSvr.innerctrl.GetData(pDataKey);
	factory.consoleprint("OnReceive> strRecvData = [" + strRecvData + "]");
}

// 브라우서 시작 버튼 이벤트 처리 함수
function btnStartBrowser_on_mouseup(objInst)
{
	StartXFrame5Browser();
}

// 브라우서 종룔 버튼 이벤트 처리 함수
function btnStopBrowser_on_mouseup(objInst)
{
	if (XFRAME5_BROWSER_PID > 0) {
		// 전용 브라우저 강제 종료
		factory.killprocessor(XFRAME5_BROWSER_PID);
		XFRAME5_BROWSER_PID = 0;
	}
}

// xFrameConfig.ini 파일 파라미터 구성
// 브라우저 시작시 트레이 아이콘으로 표시하기 위해 설정
// USE_TRAYICON = TRUE
// 브라우저 초기 숨김 처리를 위해서 설정
// BROWSER_SHOW = FALSE

// 화면 로드 이벤트 처리
function screen_on_load()
{
	var nRet;
	var strLogDir = "C:\\xFrame5\\log";

	factory.showconsoletrace(true);

	// 웹소켓 서버 컴포넌트 시작 (9999 TCP 포트번호 사용)
	/**
	 * XPlusWebSockSvr 컴포넌트를 초기화한다.
	 * @param pLogDir 로그 저장 디렉토리
	 * @param pLogFilePrefix 로그 파일 이름
	 * @param pLogLevel 로그 레벨("DEBUG"<"INFO"<"WARN"<"ERROR")
	 *                  ("DEBUG"로 지정시에만 송수신 데이터 덤프 로그가 기록됨)
	 * @param nLogEncFlag 로그 파일 내용 암호화 여부
	 * @param nBindPortNo Listen TCP 포트 번호
	 * @return
	 *	0 : Success
	 *	1 : Invalid Length Field Length
	 *	9 : Already Initialized
 	*/
	objWSockSvr.innerctrl.InitXPlusWebSockSvr(strLogDir, "XPlusWebSockSvr", "INFO", 0, 9999);

	/**
	 * 웹소켓 포트를 열고 웹 소켓 접속 대기
 	* @param nBindPortNo Listen할 TCP 포트 번호 (0 값을 지정할 경우, InitXPlusWebSockSvr 함수에서 지정한 포트 사용)
	 * @returns 처리 결과 값
	 *		0: Success
	 *		1: Invalid Port No
	 *		2: Fail To Create Socket
	 *		3: Fail To Socket Listen
	 *		9: Not Initialized
	 */
	nRet = objWSockSvr.innerctrl.StartXPlusWebSockSvr(0);
	factory.consoleprint("StartXPlusWebSockSvr Value = " + nRet);
	if(nRet != 0) {
		screen.alert("StartXPlusWebSockSvr() Fail, ErrorCode = " + nRet);
	}

	btnStartBrowser_on_mouseup();
}

// 화면 닫기전 이벤트 처리
function screen_on_destroy()
{
	/**
	 * XPlusWebSockSvr 소켓을 닫고, 연결된 WebSocket 세션 해제
	 * @param nCloseSessionFlag 연결되어 있는 WebSocket 세션 해제 여부
	 * @param nFireEventFlag 세션 해제 이벤트 발생 처리 여부 플래그
	 * @returns 처리 결과 값
	 *		0: Success
	 *		9: Not Initialized
	 */
	// 웹소켓 서버 컴포넌트 종료 및 연결된 세션 해제
	objWSockSvr.innerctrl.StopXPlusWebSockSvr(1, 0);

	return 1;
}

/**
 * XFrame5Browser 프로세스 시작 처리
 */
function StartXFrame5Browser()
{
	var strBrowserPath, arrBrowserParam, strBrowserParam, strStartHtmlUrl, strStartHtmlParam;

	// 전용 브라우저 파일 절대 경로
	strBrowserPath = "C:\\xFrame5\\xFrame5Browser\\xFrame5Browser(x86)\\xFrame5Browser.exe";

	// 전용 브라우저 파리미터 (크롬 실행 파라미터와 동일한 형태)
	// 참조 URL: https://peter.sh/experiments/chromium-command-line-switches/

	// 로컬에서 html 파일을 수정한 후 크롬으로 확인하고 싶을때 크롬에서 file:// 프로토콜을읽지 못하는 경우가 있다.
	// 이옵션으로 수행하면 로컬의 파일을 크롬에서 읽을 수 있다.
	// 아래의 --url 파라미테어 file 프로토콜을 사용하는 경우, 반드시 지정해야 한다.
	// --allow-file-access-from-files

	// 국가별 언어에 따른 크롬 자동번역 팝업을 안뜨게 한다.
	// --disable-translate

	// AJAX 의 cross-domain 문제를 피해갈 수 있다. (Don't enforce the same-origin policy.)
	// --disable-web-security

	// 전용 브라우저 시작시 크기 지정. ex) --window-size=300,700
	// --window-size=width,height

	// 전용 브라우저 시작시 위치 지정. ex) --window-position=10,10
	// --window-position=left,top

	// 시작시 최대화 상태로 시작
	// --start-maximized

	// 전용 브라우저 타이틀바 우측 상단 최소화,최대화,닫기 버튼 숨김 처리
	// --no-sysmenu

	// 전용 브라우저 타이틀바 우측 상단 닫기 버튼을 비활성 처리
	// --disable-close-sysmenu

	// 브라우저에서 사용할 캐쉬 디렉토리를 지정한다. ex) --cache-path=C:\\xFrame5\\cache
	// 지정하지 않은 경우, 메모리 캐쉬 방식을 사용하며, 프로세스 종료시 캐쉬된 내용도 삭제된다.
	// --cache-path=캐쉬저장디렉토리절대경로

	// 전용 브라우저가 표시할 시작 HTML 파일 URL 및 파라미터 설정
	// 기본 XFrame5Browser 브라우저 파라미터 지정
	// strBrowserParam = "--allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt";

	// 전용 브라우서 시작이 표시할 xFrame5.html 파일에 대한 URL
	// HTTP URL 사용시: --url=http://125.133.62.11:8080/xframe5.html;
	// FILE URL 사용시: --url=file:///C:/xFrame5/index.html;
	// --url=전용브라우저시작시URL

	arrBrowserParam = [];

	// TSFImeSupport 기능은 크로니엄 76.0.3809.132 까지는 한문
	// 입력이 정상이었으나, 77.0.3865.75 버전 이후 한문 입력 및
	// 특수 문자 입력시 오류가 발생하는 현상을 회파하기 위한 기능 이름이다.
	arrBrowserParam.push("--disable-features=TSFImeSupport");

	arrBrowserParam.push("--allow-file-access-from-files");
	arrBrowserParam.push("--disable-web-security");
	arrBrowserParam.push("--cache-path=C:\\xFrame5\\cache");

	strBrowserParam = arrBrowserParam.join(" ");

	// 전용 브라우저가 표시할 시작 HTML 파일 URL 및 파라미터 설정
	strStartHtmlUrl = "--url=file:///D:/SOFTBASE/HTML/xframe5/terminal.html";
	// strStartHtmlUrl = "--url=http://127.0.0.1:80/terminal.html";

	// 시작 HTML의 파라미터 지정 필요시 아래의 라인 사용
	// strStartHtmlParam = "?xframe_screen_url=/SYS/StartMain&xframe_console=1&xframe_event=1&xframe_param=1";
	strStartHtmlParam = "?xframe_screen_url=/TEMPLATE/HTML5/loadmeta&xframe_console=1&xframe_event=1&xframe_param=1";
	// strStartHtmlParam = "";

	// 전용 브라우저 실행 및 전용 브라우저 프로세스 ID 저장
	XFRAME5_BROWSER_PID = factory.winexecex(strBrowserPath + " " + strBrowserParam + " " + strStartHtmlUrl + strStartHtmlParam, true, 0);
	factory.consoleprint("XFRAME5_BROWSER_PID = " + XFRAME5_BROWSER_PID);
}

  • guide/xplus/xplus_agentmain.txt
  • 마지막으로 수정됨: 2023/05/11 16:21
  • 저자 127.0.0.1