From b638a605ad2ec82cb4fc811793faf685905c7076 Mon Sep 17 00:00:00 2001 From: Hojin Date: Tue, 23 Jan 2024 17:28:36 +0900 Subject: [PATCH 01/11] =?UTF-8?q?Fix:=20=EC=8A=AC=EB=9D=BC=EC=9D=B4?= =?UTF-8?q?=EB=8D=94=20=ED=81=AC=EA=B8=B0=EA=B3=A0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/@types/service.ts | 14 +++++++++++++ src/@types/socket.types.ts | 20 ++++++++++++++++++ src/api/socket.ts | 21 +++++++++++++++++++ .../DetailSectionTop/DetailAddSchedule.tsx | 2 +- src/components/Plan/PlanSectionTop.tsx | 19 +++++++++++++++++ src/hooks/useSocket.ts | 12 +++++++++++ 6 files changed, 87 insertions(+), 1 deletion(-) diff --git a/src/@types/service.ts b/src/@types/service.ts index bae375b2..b0fe82ae 100644 --- a/src/@types/service.ts +++ b/src/@types/service.ts @@ -97,12 +97,26 @@ export type subBudgetRes = { } | null; }; +export type subCursorRes = { + status: number; + message: string; + data: { + tripId: string; + visitDate: string; + memberId: number; + name: string; + x: number; + y: number; + } | null; +}; + export type SocketContextType = { tripInfo: subInfoRes | null; tripItem: subItemRes | null; tripPath: subPathRes | null; tripMember: subMemberRes | null; tripBudget: subBudgetRes | null; + tripCursor: subCursorRes | null; tripId: string; callBackPub: (callback: () => void) => void; }; diff --git a/src/@types/socket.types.ts b/src/@types/socket.types.ts index a8167cc8..227a7467 100644 --- a/src/@types/socket.types.ts +++ b/src/@types/socket.types.ts @@ -82,6 +82,19 @@ type subBudgetMessage = (response: { }; }) => void; +type subCursorMessage = (response: { + status: number; + message: string; + data: { + tripId: string; + visitDate: string; + memberId: number; + name: string; + x: number; + y: number; + }; +}) => void; + interface pubInfo { startDate: string; endDate: string; @@ -138,3 +151,10 @@ interface pubGetPathAndItems { interface pubUpdateBudget { budget: number; } + +interface pubCursor { + token: string; + visitDate: string; + x: number; + y: number; +} diff --git a/src/api/socket.ts b/src/api/socket.ts index c5c437b4..93bc09d3 100644 --- a/src/api/socket.ts +++ b/src/api/socket.ts @@ -61,6 +61,18 @@ export const subBudget = ( }); }; +// 커서 공유 +export const subCursor = ( + tripId: string, + visitDate: string, + subCursorMessage: subCursorMessage, +) => { + socketClient.subscribe(`/sub/${tripId}/cursor/${visitDate}`, (message) => { + const res = JSON.parse(message.body); + subCursorMessage(res); + }); +}; + // 소켓 전송 // 여정 기본 정보 변경 이벤트 발생시 export const pubInfo = (pubInfo: pubInfo, tripId: string) => { @@ -187,3 +199,12 @@ export const pubUpdateBudget = ( body: JSON.stringify(pubUpdateBudget), }); }; + +// 커서공유 +export const pubCursor = (pubCursor: pubCursor, tripId: string) => { + socketClient.publish({ + destination: `/pub/trips/${tripId}/cursor`, + body: JSON.stringify(pubCursor), + }); + console.log(pubCursor); +}; diff --git a/src/components/DetailSectionTop/DetailAddSchedule.tsx b/src/components/DetailSectionTop/DetailAddSchedule.tsx index 22f35eb5..fbbc8361 100644 --- a/src/components/DetailSectionTop/DetailAddSchedule.tsx +++ b/src/components/DetailSectionTop/DetailAddSchedule.tsx @@ -165,7 +165,7 @@ const DetailAddSchedule = () => { key={index} className="flex w-[99px] items-start">