다른디바이스와의 Sync 처리. ::: ROOM_UPT_RES
This commit is contained in:
parent
7d6ebad5d5
commit
72a6b5b931
|
@ -20,7 +20,6 @@ import {
|
||||||
SSVC_TYPE_EVENT_READ_NOTI,
|
SSVC_TYPE_EVENT_READ_NOTI,
|
||||||
SSVC_TYPE_EVENT_CANCEL_NOTI,
|
SSVC_TYPE_EVENT_CANCEL_NOTI,
|
||||||
SSVC_TYPE_EVENT_DEL_RES,
|
SSVC_TYPE_EVENT_DEL_RES,
|
||||||
Info,
|
|
||||||
SSVC_TYPE_EVENT_SEND_RES,
|
SSVC_TYPE_EVENT_SEND_RES,
|
||||||
SSVC_TYPE_EVENT_READ_RES
|
SSVC_TYPE_EVENT_READ_RES
|
||||||
} from '@ucap-webmessenger/protocol-event';
|
} from '@ucap-webmessenger/protocol-event';
|
||||||
|
@ -35,7 +34,9 @@ import {
|
||||||
SSVC_TYPE_ROOM_EXIT_NOTI,
|
SSVC_TYPE_ROOM_EXIT_NOTI,
|
||||||
SSVC_TYPE_ROOM_EXIT_FORCING_NOTI,
|
SSVC_TYPE_ROOM_EXIT_FORCING_NOTI,
|
||||||
SSVC_TYPE_ROOM_FONT_UPD_NOTI,
|
SSVC_TYPE_ROOM_FONT_UPD_NOTI,
|
||||||
InviteNotification
|
InviteNotification,
|
||||||
|
UpdateNotification,
|
||||||
|
SSVC_TYPE_ROOM_UPD_RES
|
||||||
} from '@ucap-webmessenger/protocol-room';
|
} from '@ucap-webmessenger/protocol-room';
|
||||||
import {
|
import {
|
||||||
StatusProtocolService,
|
StatusProtocolService,
|
||||||
|
@ -200,6 +201,28 @@ export class AppNotificationService {
|
||||||
.pipe(
|
.pipe(
|
||||||
tap(notiOrRes => {
|
tap(notiOrRes => {
|
||||||
switch (notiOrRes.SSVC_TYPE) {
|
switch (notiOrRes.SSVC_TYPE) {
|
||||||
|
case SSVC_TYPE_ROOM_UPD_RES:
|
||||||
|
{
|
||||||
|
const noti = notiOrRes as UpdateNotification;
|
||||||
|
this.logger.debug(
|
||||||
|
'Notification::roomProtocolService::UpdateNotification',
|
||||||
|
noti
|
||||||
|
);
|
||||||
|
this.store.dispatch(
|
||||||
|
RoomStore.updateSuccess({
|
||||||
|
res: {
|
||||||
|
roomSeq: noti.roomSeq,
|
||||||
|
roomName:
|
||||||
|
noti.roomName.trim().length === 0
|
||||||
|
? ' '
|
||||||
|
: noti.roomName.trim(),
|
||||||
|
receiveAlarm: noti.receiveAlarm,
|
||||||
|
syncAll: false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case SSVC_TYPE_ROOM_INVITE_NOTI:
|
case SSVC_TYPE_ROOM_INVITE_NOTI:
|
||||||
{
|
{
|
||||||
const noti = notiOrRes as InviteNotification;
|
const noti = notiOrRes as InviteNotification;
|
||||||
|
|
|
@ -105,6 +105,19 @@ export const reducer = createReducer(
|
||||||
on(updateRoomForNewEventMessage, (state, action) => {
|
on(updateRoomForNewEventMessage, (state, action) => {
|
||||||
let finalEventMessage: string = action.info.sentMessage;
|
let finalEventMessage: string = action.info.sentMessage;
|
||||||
switch (action.info.type) {
|
switch (action.info.type) {
|
||||||
|
case EventType.Join:
|
||||||
|
case EventType.Exit:
|
||||||
|
case EventType.RenameRoom:
|
||||||
|
case EventType.NotificationForTimerRoom:
|
||||||
|
case EventType.GuideForRoomTimerChanged: {
|
||||||
|
/**
|
||||||
|
* 해당 타입은 메시지를 갱신하지 않는다.
|
||||||
|
* @description Edit with ui-chat > messages.component.ts
|
||||||
|
*/
|
||||||
|
return {
|
||||||
|
...state
|
||||||
|
};
|
||||||
|
}
|
||||||
case EventType.Sticker:
|
case EventType.Sticker:
|
||||||
finalEventMessage = '스티커';
|
finalEventMessage = '스티커';
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -32,6 +32,17 @@ export interface UpdateResponse extends ProtocolResponse {
|
||||||
syncAll: boolean;
|
syncAll: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface UpdateNotification extends ProtocolNotification {
|
||||||
|
/** 대화방SEQ(s) */
|
||||||
|
roomSeq: string;
|
||||||
|
/** 대화방제목(s) */
|
||||||
|
roomName: string;
|
||||||
|
/** 알람여부(y) */
|
||||||
|
receiveAlarm: boolean;
|
||||||
|
/** 동기화여부(s) */
|
||||||
|
syncAll: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
export const encodeUpdate: ProtocolEncoder<UpdateRequest> = (
|
export const encodeUpdate: ProtocolEncoder<UpdateRequest> = (
|
||||||
req: UpdateRequest
|
req: UpdateRequest
|
||||||
) => {
|
) => {
|
||||||
|
@ -61,6 +72,17 @@ export const decodeUpdate: ProtocolDecoder<UpdateResponse> = (
|
||||||
} as UpdateResponse);
|
} as UpdateResponse);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const decodeUpdateNotification: ProtocolDecoder<UpdateNotification> = (
|
||||||
|
message: ProtocolMessage
|
||||||
|
) => {
|
||||||
|
return decodeProtocolMessage(message, {
|
||||||
|
roomSeq: message.bodyList[0],
|
||||||
|
roomName: message.bodyList[1],
|
||||||
|
receiveAlarm: message.bodyList[2] === 'Y' ? true : false,
|
||||||
|
syncAll: message.bodyList[3] === 'Y' ? true : false
|
||||||
|
} as UpdateNotification);
|
||||||
|
};
|
||||||
|
|
||||||
export interface UpdateTimerSetRequest extends ProtocolRequest {
|
export interface UpdateTimerSetRequest extends ProtocolRequest {
|
||||||
// 대화방SEQ(s)
|
// 대화방SEQ(s)
|
||||||
roomSeq: string;
|
roomSeq: string;
|
||||||
|
|
|
@ -26,7 +26,8 @@ import {
|
||||||
SSVC_TYPE_ROOM_INVITE_NOTI,
|
SSVC_TYPE_ROOM_INVITE_NOTI,
|
||||||
SSVC_TYPE_ROOM_EXIT_NOTI,
|
SSVC_TYPE_ROOM_EXIT_NOTI,
|
||||||
SSVC_TYPE_ROOM_EXIT_FORCING_NOTI,
|
SSVC_TYPE_ROOM_EXIT_FORCING_NOTI,
|
||||||
SSVC_TYPE_ROOM_FONT_UPD_NOTI
|
SSVC_TYPE_ROOM_FONT_UPD_NOTI,
|
||||||
|
SSVC_TYPE_ROOM_UPD_RES
|
||||||
} from '../types/service';
|
} from '../types/service';
|
||||||
import {
|
import {
|
||||||
OpenRequest,
|
OpenRequest,
|
||||||
|
@ -127,6 +128,11 @@ export class RoomProtocolService {
|
||||||
filter(message => message.serviceType === SVC_TYPE_ROOM),
|
filter(message => message.serviceType === SVC_TYPE_ROOM),
|
||||||
tap(message => {
|
tap(message => {
|
||||||
switch (message.subServiceType) {
|
switch (message.subServiceType) {
|
||||||
|
case SSVC_TYPE_ROOM_UPD_RES:
|
||||||
|
{
|
||||||
|
this.notificationSubject.next(decodeUpdate(message));
|
||||||
|
}
|
||||||
|
break;
|
||||||
case SSVC_TYPE_ROOM_INVITE_NOTI:
|
case SSVC_TYPE_ROOM_INVITE_NOTI:
|
||||||
{
|
{
|
||||||
this.notificationSubject.next(
|
this.notificationSubject.next(
|
||||||
|
|
|
@ -85,6 +85,7 @@ export class MessagesComponent implements OnInit {
|
||||||
/**
|
/**
|
||||||
* 정보성 Event 인지 판단.
|
* 정보성 Event 인지 판단.
|
||||||
* @description 정보성 event 일 경우 프로필, 일시 를 표현하지 않는다.
|
* @description 정보성 event 일 경우 프로필, 일시 를 표현하지 않는다.
|
||||||
|
* Edit with reducers.ts / sync / updateRoomForNewEventMessage
|
||||||
*/
|
*/
|
||||||
getIsInformation(info: Info) {
|
getIsInformation(info: Info) {
|
||||||
if (
|
if (
|
||||||
|
|
Loading…
Reference in New Issue
Block a user