2월18일 todo

This commit is contained in:
Park Byung Eun 2020-02-18 18:07:19 +09:00
parent 6c279e5754
commit 4553c53009
6 changed files with 341 additions and 0 deletions

View File

@ -0,0 +1,173 @@
주소록 사전작업
주소록 메뉴 출력 확인
다이얼 패드 컴포넌트 적용
주소록 탭 컴포넌트 작성
주소록 프로토콜 정리
주소록 데이터 형식 파악
주소록 동기화 절차 분석
기존 LF Talk 개인주소록 절차 분석
// 개인주소록 동기화 방향 상수 값
{let public constant PB_TO_MOBILE:String = "M"} || 폰북 씽크 동기화 방향(to mobile)
{let public constant PB_TO_PC:String = "P"} || 폰북 씽크 동기화 방향(to PC)
{let public constant PB_OK_Y:String = "Y"} || 폰북 씽크 준비여부(Y: 준비요청승인)
{let public constant PB_OK_N:String = "N"} || 폰북 씽크 준비여부(N: 준비요청거절)
{let public constant PB_SYNC_TYPE_WHOLE:String = "W"} || 폰북 씽크 타입(W: 전체(Whole))
{let public constant PB_SYNC_TYPE_PART:String = "P"} || 폰북 씽크 타입(P: 부분(Part))
총 개수
전체 페이지 개수
현재 페이지 개수
주소록 데이터 = sData
주소록 데이터 개수
PB_SYNC_TYPE_WHOLE 전체를 받을때
SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI (데이터 수신)
데이터 초기화
폰북 씽크 타입이 전체이며, 현재 페이지 1인경우
기존 파일 삭제
폰북 씽크 타입이 부분이며, 현재 페이지 1인경우
정상적으로 완료되었을 경우
현재 페이지 개수와 토탈 페이지 개수 비교
SSVC_TYPE_SYNC_PHONEBOOK_RCV_REQ (데이터 수신 완료 응답)
필요한 모델
개인주소록 씽크 타입
PHONEBOOK_TO_MOBILE
PHONEBOOK_TO_PC
PHONEBOOK_OK_Y 씽크 준비 요청 승인
PHONEBOOK_OK_N 씽크 준비 요청 거절
PHONEBOOK_TYPE_WHOLE 전체
PHONEBOOK_TYPE_PART 부분
개인주소록 페이지
전체 개수: number
현재 페이지: number
전체 페이지: number
데이터: string[]
(PC)
PC->Server 개인 주소록 동기화 요청
SSVC_TYPE_SYNC_PHONEBOOK_READY_REQ
UserInfo.isMobile true 인지 확인
목적지 타입 set
요청
Server->PC 모바일 주소록 동기화 응답
(30초 동안 SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI 프로토콜 오지 않으면 실패 알람)
SSVC_TYPE_SYNC_PHONEBOOK_READY_RES
30초 동안 isWating set
Server -> PC 모바일 주소록 동기화 준비 완료 알림
SSVC_TYPE_SYNC_PHONEBOOK_READY_NOTI
PC 동기화 준비 완료 요청
SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_RES, SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_NOTI 사용X
Server->PC 동기화 데이터 노티 (실데이터)
SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI
30초 동안 isWating false
페이지 데이터 초기화
데이터 파싱
{let public constant PARAM_DIV:char = 0x08} ||_T('\b') // 파라메터 분리자
BodyStringDivider
데이터 저장
에러처리
데이터가 없는 경우
에러가 난 경우
PHONEBOOK_OK_N 서버 전송
기존 종료 조건은 현재 페이지개수와 전체페이지 개수를 비교
PC->Server 수신 완료 요청
SSVC_TYPE_SYNC_PHONEBOOK_RCV_REQ
procStatus = 개인주소록 씽크 타입
syncType = 개인주소록 씽크 타입
totCnt = 전체 개수
curPage = 현재 페이지 개수
totopage = 전체 페이지 개수
sData = string[]
sync-protocol-service
3. SSVC_TYPE_SYNC_PHONEBOOK_READY_NOTI 준비 요청에 대한 노티피케이션 등록
5. SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI 전송 요청에 대한 노티피케이션 등록
SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_NOTI (기존 소스에서는 사용하지 않음)
1. SSVC_TYPE_SYNC_PHONEBOOK_READY_REQ 콜
2. SSVC_TYPE_SYNC_PHONEBOOK_READY_RES 응답
30초 카운트 시작
4. SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_REQ 콜
SSVC_TYPE_SYNC_PHONEBOOK_READY_RES (기존 소스에서는 사용하지 않음)
notification-service
3. SSVC_TYPE_SYNC_PHONEBOOK_READY_NOTI
dispatch(PC 동기화 준비 완료 요청)
5. SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI
dispatch(데이터 파싱)
데이터 파싱
dispatch(수신 완료 요청)
SSVC_TYPE_SYNC_PHONEBOOK_READY_RES 응답 후 30초 동안 SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI 이코드가 안오면 에러
progress 필요
file-download-item.ts 참고
sync-protocol-service 응답
notification-service와
///
SSVC_TYPE_SYNC_PHONEBOOK_READY_REQ 요청
SSVC_TYPE_SYNC_PHONEBOOK_READY_RES 응답
30초 대기
SSVC_TYPE_SYNC_PHONEBOOK_READY_NOTI
SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_REQ 요청
SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI
데이터 파싱
1. 프로토콜 정의
2. 모델 정의
3. 함수 구현
sync-protocol.service.ts
phoneBook() 함수 추가
SSVC_TYPE_SYNC_PHONEBOOK_READY_RES 응답코드 일때 특정 시간 대기?
notification.service.ts
SSVC_TYPE_SYNC_PHONEBOOK_READY_NOTI 프로토콜 코드에 대한 설정?
설정한 경우
sync-protocol.service.ts phoneBookReady() 함수 추가 및 호출?
설정 안하게 되는 경우?
SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI 프로토콜 설정
데이터 파싱
(안드로이드)
SSVC_TYPE_SYNC_PHONEBOOK_READY_NOTI
SSVC_TYPE_SYNC_PHONEBOOK_SND_REQ
SSVC_TYPE_SYNC_PHONEBOOK_SND_RES
SSVC_TYPE_SYNC_PHONEBOOK_RCV_NOTI
SSVC_TYPE_SYNC_PHONEBOOK_SND_REQ
SSVC_TYPE_SYNC_PHONEBOOK_SND_RES
SSVC_TYPE_SYNC_PHONEBOOK_RCV_NOTI
안드에서 위와 같이 PC 메신저와 프로토콜을 주고 받고 있습니다 .참조하시기 바랍니다.
{주소록정보}
주소록SEQ
사진파일
이름
태그
전화번호 [ 번호1 번호2 번호3 번호4 번호5]
이메일
메모
ActiveYN
(사용X)
SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_REQ
SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_RES
SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_NOTI

View File

@ -0,0 +1,130 @@
sync-protocol-service
3. SSVC_TYPE_SYNC_PHONEBOOK_READY_NOTI 준비 요청에 대한 노티피케이션 등록
5. SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI 전송 요청에 대한 노티피케이션 등록
SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_NOTI (기존 소스에서는 사용하지 않음)
1. SSVC_TYPE_SYNC_PHONEBOOK_READY_REQ 콜
2. SSVC_TYPE_SYNC_PHONEBOOK_READY_RES 응답
30초 카운트 시작
4. SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_REQ 콜
SSVC_TYPE_SYNC_PHONEBOOK_READY_RES (기존 소스에서는 사용하지 않음)
notification-service
3. SSVC_TYPE_SYNC_PHONEBOOK_READY_NOTI
dispatch(PC 동기화 준비 완료 요청)
5. SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI
dispatch(데이터 파싱)
데이터 파싱
dispatch(수신 완료 요청)
createGroupAndBuddy 액션 확인
SSVC_TYPE_SYNC_PHONEBOOK_READY_RES
phoneBookReadyResponse -> syncStartDate에 현재 시간을 저장
phoneBook state management
1. export interface PhoneBookState extends EntityState<PhoneBookInfo> {
syncDate: string;
}
2. legacy state object code added
phoneBook: PhoneBookState;
3. adapterPhoneBook 생성
4. phoneBookInitialState 스테이트 초기화
5. init state object code added
6. phoneBook select code added
7. selector function modify
create selector (phoneBook)
reducer management
액션
폰 동기화 요청
props x
폰 동기화 응답
동기화 시작 시간
동기화 유효 시간
폰 동기화 실패
state 동기화 실패 결과값 수정
폰 동기화 준비 완료 요청
props x
폰 동기화 준비 완료 응답
응답 확인
폰 동기화 준비 완료 실패
state 동기화 실패 결과값 수정
폰 동기화 전송 노티
state
현재 시간 - 동기화 시작 시간 < 유효시간 체크
전체 개수
현재 개수
페이지 개수
dataList 처리
else
state 동기화 실패 결과값 수정
폰 동기화 완료 요청
state 값 조회
폰 동기화 완료 응답
폰 동기화 완료 실패
state 생성
폰북 리스트
주소록 번호
동기화 시작 시간
동기화 완료 시간
동기화 유효 시간
{주소록정보}
주소록SEQ
사진파일
이름
태그
번호1
번호2
번호3
번호4
번호5
이메일
메모
ActiveYN
새로운 주소록 정보
이름
폰번호: string[]
image
{
'totalcount': 100,
'contact': [
{
"name":"박성균",
"phone":[
"01091568989",
"022563212"
],
"image":"~~~~~~"
},
]
}
파일 정보 조회
0: {roomSeq: "13", eventSeq: 48, seq: 716, senderSeq: 9829, type: "F", …}
1: {roomSeq: "13", eventSeq: 49, seq: 717, senderSeq: 9829, type: "F", …}
2: {roomSeq: "13", eventSeq: 36, seq: 580, senderSeq: 9829, type: "b", …}
3: {roomSeq: "13", eventSeq: 37, seq: 581, senderSeq: 9829, type: "b", …}
4: {roomSeq: "13", eventSeq: 43, seq: 709, senderSeq: 9824, type: "b", …}
5: {roomSeq: "13", eventSeq: 44, seq: 710, senderSeq: 9824, type: "b", …}
6: {roomSeq: "13", eventSeq: 42, seq: 708, senderSeq: 9824, type: "I", …}
7: {roomSeq: "13", eventSeq: 45, seq: 711, senderSeq: 9829, type: "F", …}
8: {roomSeq: "13", eventSeq: 46, seq: 714, senderSeq: 9829, type: "F", …}
9: {roomSeq: "13", eventSeq: 47, seq: 715, senderSeq: 9829, type: "V", …}
10: {roomSeq: "13", eventSeq: 9, seq: 41, senderSeq: 9829, type: "I", …}
11: {roomSeq: "13", eventSeq: 27, seq: 296, senderSeq: 9829, type: "I", …}
12: {roomSeq: "13", eventSeq: 28, seq: 297, senderSeq: 9829, type: "I", …}
13: {roomSeq: "13", eventSeq: 31, seq: 574, senderSeq: 9829, type: "b", …}
14: {roomSeq: "13", eventSeq: 32, seq: 576, senderSeq: 9829, type: "b", …}
15: {roomSeq: "13", eventSeq: 33, seq: 577, senderSeq: 9829, type: "b", …}
16: {roomSeq: "13", eventSeq: 34, seq: 578, senderSeq: 9829, type: "b", …}
17: {roomSeq: "13", eventSeq: 35, seq: 579, senderSeq: 9829, type: "b", …}

View File

@ -0,0 +1,17 @@
<html>
<head>
<title>JavaScript Get Seconds</title>
</head>
<body>
<script>
var date1, date2;
date1 = new Date();
document.write(""+date1);
date2 = new Date( "Feb 18, 2020 09:30:10" );
document.write("<br>"+date2);
// get total seconds between two dates
var seconds = Math.abs(date1 - date2) / 1000;
document.write("<br>Difference between 2 dates: "+seconds);
</script>
</body>
</html>

View File

@ -0,0 +1,21 @@
roomSeq(pin):"13"
eventSeq(pin):44
seq(pin):710
senderSeq(pin):9824
type(pin):"b"
name(pin):"92164325ccca37df669d862498de47b8_t.jpeg"
url(pin):"/AttFile/LF/2020/02/18/MA_9824_132559173_0.jpeg"
size(pin):"15221"
sendDate(pin):"2020-02-18 04:26:20"
receivedUserCount(pin):0
receiverCount(pin):1
sentMessage(pin):"{"StatusCode":"200","ErrorMessage":"","RoomID":"13","AttSEQ":"710","FileCount":"1","BaseURL":"http://13.209.221.130/WebFile/LF/2020/02/18/","ThumbURL":["MA_9824_132559173_0.jpeg.thumb.jpg"]}"
statusCode(pin):"200"
errorMessage(pin):""
roomSeq(pin):"13"
attachmentSeq(pin):"710"
fileCount(pin):"1"
baseUrl(pin):"http://13.209.221.130/WebFile/LF/2020/02/18/"
0(pin):"MA_9824_132559173_0.jpeg.thumb.jpg"
http://13.209.221.130/WebFile/LF/2020/02/14/MA_9829_174233376_0.jpg.thumb.jpg