/** * socket 설정 */ //전역변수 선언-모든 홈페이지에서 사용 할 수 있게 index에 저장 var socket = null; $(function() { connectWs(); // 결재문서 알림 $(".approval em").click(function() { var emCnt = $(this).html(); $('.message em').html('새로운 알림이 ' + emCnt + '건 있습니다.'); $('.message .message_btn a').off('click').on('click', function() { fncPopupOpen("/ntcn/pop/list.do", 800, 700, null, "Y"); }); $(".message").addClass("show"); }); $(".message p").click(function() { $(".message").removeClass("show"); }); }); function connectWs() { sock = new SockJS('/socket'); socket = sock; sock.onopen = function() { }; // 메시지 받았을 때 sock.onmessage = function(evt) { // 알림 창 var data = evt.data.split('||'); var ntcnId = data[0]; var msg = data[1]; var url = data[2]; // 알림 카운트 증가 var emCnt = parseInt($(".approval em").html()); $(".approval em").html(emCnt+1); $('.message em').html(msg); $('.message .message_btn a').off('click').on('click', function() { // 알림 메시지 확인 confirmSocketMsg(ntcnId, url); }); $('.message').addClass('show'); setTimeout(function() { $('.message').removeClass('show'); }, 30000); }; sock.onclose = function() { /* setTimeout(function(){conntectWs();} , 1000); */ }; sock.onerror = function(err) { }; } /** * 알림 메시지 보내기 * @param cmd 메시지 유형 * @param caller 보내는 사람 uniqId * @param receiver 받는 사람 uniqId 배열 * @param url 바로가기 url * @param msg 보낼 메시지 * @returns */ function sendSocketMsg(cmd, caller, receiver, url, msg) { var receiverList = receiver; if( typeof receiver == "string" ) { receiverList = receiver.split(','); } if (socket) { var params = { cmd: cmd , caller: caller , receiver: receiverList , url: url , param1: msg }; var socketMsg = JSON.stringify(params); socket.send(socketMsg); } } /** * 알림 메시지 확인 * @param arrNtcnId 알람ID 배열 * @param returnUrl 확인 후 이동 할 URL * @returns */ function confirmSocketMsg(arrNtcnId, returnUrl) { var ntcnIdList = arrNtcnId; if( typeof arrNtcnId == "string" ) { ntcnIdList = arrNtcnId.split(','); } var url = '/ntcn/cnfirm/updateJson.do'; var params = {}; for( var i=0; i < ntcnIdList.length; i++ ) { params['ntcnList[' + i + '].ntcnId'] = ntcnIdList[i]; params['ntcnList[' + i + '].cnfirmAt'] = 'Y'; } $.post(url, params, function(data) { if( returnUrl != null && returnUrl != '' ) { location.href = returnUrl; } }); }