From a9ac199ac55ac8c4bf5c0b9b455f9f357bf7afb2 Mon Sep 17 00:00:00 2001 From: hdsuperman Date: Thu, 22 Dec 2022 22:21:06 +0800 Subject: [PATCH] chore: remove log --- src/app/services/base.query.ts | 1 - src/common/hook/useMessageFeed.ts | 3 - src/common/hook/useStreaming/index.ts | 424 ++++++++++++-------------- 3 files changed, 188 insertions(+), 240 deletions(-) diff --git a/src/app/services/base.query.ts b/src/app/services/base.query.ts index 8a272dab..236d814d 100644 --- a/src/app/services/base.query.ts +++ b/src/app/services/base.query.ts @@ -30,7 +30,6 @@ const whiteList = [ const baseQuery = fetchBaseQuery({ baseUrl: BASE_URL, prepareHeaders: (headers, { getState, endpoint }) => { - console.info("req", endpoint); const { token } = (getState() as RootState).authData; if (token && !whiteList.includes(endpoint)) { headers.set(tokenHeader, token); diff --git a/src/common/hook/useMessageFeed.ts b/src/common/hook/useMessageFeed.ts index a39082df..bb2e0f4a 100644 --- a/src/common/hook/useMessageFeed.ts +++ b/src/common/hook/useMessageFeed.ts @@ -100,7 +100,6 @@ export default function useMessageFeed({ context = "channel", id }: Props) { mids: serverMids, isLast: true }); - console.log("pull up first", pageInfo, serverMids); pageRef.current = pageInfo; listRef.current = pageInfo.ids; setItems(listRef.current); @@ -112,7 +111,6 @@ export default function useMessageFeed({ context = "channel", id }: Props) { return Number(a) - Number(b); }); const appends = sorteds.filter((s: number) => s > lastMid); - console.log("pull up appends", appends, sorteds, lastMid, mids); if (appends.length) { setAppends(appends); const [newestMsgId] = appends.slice(-1); @@ -136,7 +134,6 @@ export default function useMessageFeed({ context = "channel", id }: Props) { }, [mids, messageData, loginUid]); const pullUp = async () => { const currPageInfo = pageRef.current; - console.log("pull up", currPageInfo); // 第一页 if (currPageInfo && currPageInfo.isFirst) { const [firstMid] = currPageInfo.ids; diff --git a/src/common/hook/useStreaming/index.ts b/src/common/hook/useStreaming/index.ts index d734ca9f..93878fc0 100644 --- a/src/common/hook/useStreaming/index.ts +++ b/src/common/hook/useStreaming/index.ts @@ -62,250 +62,204 @@ export default function useStreaming() { } }, timeout ?? 20000); }; - const startStreaming = useCallback( - async () => { - console.log("start streaming", SSE, SSE?.readyState); - if (connectionIsOpen) return; - window.clearTimeout(aliveInter); - if (SSE && (SSE.readyState === EventSource.OPEN || SSE.readyState === EventSource.CONNECTING)) return; - const { token, refreshToken, expireTime } = getLocalAuthData(); - // token 非空 - if (!token) { - console.info("sse start streaming no token", token); + const startStreaming = useCallback(async () => { + if (connectionIsOpen) return; + window.clearTimeout(aliveInter); + if (SSE && (SSE.readyState === EventSource.OPEN || SSE.readyState === EventSource.CONNECTING)) + return; + const { token, refreshToken, expireTime } = getLocalAuthData(); + // token 非空 + if (!token) { + return; + } + let _token = token; + // 如果token快要过期,先renew + if (dayjs().isAfter(new Date(expireTime - 20 * 1000))) { + const resp = await renewToken({ token, refresh_token: refreshToken }); + if ("error" in resp) { + return; + } else { + _token = resp.data.token; + } + // return; + } + // 开始初始化 + const params: { + "api-key": string; + after_mid?: string; + users_version?: string; + } = { + "api-key": _token + }; + // 如果afterMid是0,则不传该参数 + if (afterMid !== 0) { + params.after_mid = `${afterMid}`; + } + // 如果usersVersion是0,则不传该参数 + if (usersVersion !== 0) { + params.users_version = `${usersVersion}`; + } + // 开始初始化推送 + SSE = new EventSource(`${BASE_URL}/user/events?${getQueryString(params)}`); + + SSE.onopen = () => { + //todo + opened.current = true; + connectionIsOpen = true; + }; + SSE.onerror = (err) => { + const { readyState } = err.target as EventSource; + console.error("sse error", readyState, err); + // 连接还处于开启状态 + if (readyState === EventSource.OPEN || readyState === EventSource.CONNECTING) { return; } - let _token = token; - // 如果token快要过期,先renew - if (dayjs().isAfter(new Date(expireTime - 20 * 1000))) { - const resp = await renewToken({ token, refresh_token: refreshToken }); - if ("error" in resp) { - return; - } else { - _token = resp.data.token; + // 重连 + // connectionIsOpen = false; + keepAlive(2000); + }; + SSE.onmessage = (evt) => { + const data: ServerEvent = JSON.parse(evt.data); + const { type } = data; + switch (type) { + case "heartbeat": + keepAlive(); + break; + case "ready": + // 有时候,heartbeat不会发? + keepAlive(); + dispatch(setReady()); + break; + case "users_snapshot": { + const { version } = data; + dispatch(updateUsersVersion(version)); + break; } - // return; - } - // 开始初始化 - const params: { - "api-key": string; - after_mid?: string; - users_version?: string; - } = { - "api-key": _token, - }; - // 如果afterMid是0,则不传该参数 - if (afterMid !== 0) { - params.after_mid = `${afterMid}`; - } - // 如果usersVersion是0,则不传该参数 - if (usersVersion !== 0) { - params.users_version = `${usersVersion}`; - } - // 开始初始化推送 - SSE = new EventSource(`${BASE_URL}/user/events?${getQueryString(params)}`); + case "users_log": { + const { logs } = data; + dispatch(updateUsersByLogs(logs)); + // 特殊处理当前登录用户的更新 + logs.forEach((log) => { + const { uid, action, log_id, ...rest } = log; + if (uid === loginUid && action === "update") { + dispatch(updateLoginUser(omitBy(rest, isNull))); + } + }); + break; + } + case "user_settings": + case "user_settings_changed": { + Object.keys(data).forEach((key) => { + switch (key) { + case "read_index_groups": + dispatch(updateReadChannels(data[key])); + break; + case "read_index_users": + dispatch(updateReadUsers(data[key])); + break; + case "add_mute_users": + case "mute_users": + case "add_mute_groups": + case "mute_groups": + { + const arr = data[key]; + if (arr && arr.length) { + const _key = key.endsWith("users") ? "add_users" : "add_groups"; + dispatch(updateMute({ [_key]: arr })); + } + } + break; + case "remove_mute_users": + case "remove_mute_groups": + { + const arr = data[key]; + if (arr && arr.length) { + const _key = key.endsWith("users") ? "remove_users" : "remove_groups"; + dispatch(updateMute({ [_key]: arr })); + } + } + break; - SSE.onopen = () => { - //todo - opened.current = true; - connectionIsOpen = true; - }; - SSE.onerror = (err) => { - const { readyState } = err.target as EventSource; - console.error("sse error", readyState, err); - // 连接还处于开启状态 - if (readyState === EventSource.OPEN || readyState === EventSource.CONNECTING) { - return; + default: + break; + } + }); + break; } - // 重连 - // connectionIsOpen = false; - keepAlive(2000); - }; - SSE.onmessage = (evt) => { - console.info("sse message", evt.data); - const data: ServerEvent = JSON.parse(evt.data); - const { type } = data; - switch (type) { - case "heartbeat": { - keepAlive(); - console.info("sse heartbeat", loginUid); + case "users_state": + case "users_state_changed": + { + let { type, ...rest } = data; + const onlines = + type == "users_state_changed" ? [rest] : (rest as UsersStateEvent).users; + dispatch(updateUsersStatus(onlines)); } - break; - case "ready": - console.info("sse streaming ready"); - // 有时候,heartbeat不会发? - keepAlive(); - dispatch(setReady()); - break; - case "users_snapshot": - { - console.info("sse users snapshot"); - const { version } = data; - dispatch(updateUsersVersion(version)); + break; + case "kick": + { + switch (data.reason) { + case "login_from_other_device": + dispatch(resetAuthData()); + toast("kicked from the other device"); + break; + case "delete_user": + dispatch(resetAuthData()); + toast("Your account has been deleted"); + break; + default: + break; } - break; - case "users_log": - { - const { logs } = data; - console.info("sse users change logs", logs); - dispatch(updateUsersByLogs(logs)); - // 特殊处理当前登录用户的更新 - logs.forEach((log) => { - const { uid, action, log_id, ...rest } = log; - if (uid === loginUid && action === 'update') { - dispatch(updateLoginUser(omitBy(rest, isNull))); - } - }); - } - break; - case "user_settings": - case "user_settings_changed": - { - console.info("sse users settings"); - Object.keys(data).forEach((key) => { - switch (key) { - case "read_index_groups": - dispatch(updateReadChannels(data[key])); - break; - case "read_index_users": - dispatch(updateReadUsers(data[key])); - break; - case "add_mute_users": - case "mute_users": - case "add_mute_groups": - case "mute_groups": - { - const arr = data[key]; - if (arr && arr.length) { - const _key = key.endsWith("users") ? "add_users" : "add_groups"; - dispatch(updateMute({ [_key]: arr })); - } - } - break; - case "remove_mute_users": - case "remove_mute_groups": - { - const arr = data[key]; - if (arr && arr.length) { - const _key = key.endsWith("users") ? "remove_users" : "remove_groups"; - dispatch(updateMute({ [_key]: arr })); - } - } - break; - - default: - break; - } - }); - } - break; - case "users_state": - case "users_state_changed": - { - let { type, ...rest } = data; - const onlines = - type == "users_state_changed" ? [rest] : (rest as UsersStateEvent).users; - dispatch(updateUsersStatus(onlines)); - } - break; - case "kick": - { - console.info("sse kicked"); - switch (data.reason) { - case "login_from_other_device": - dispatch(resetAuthData()); - toast("kicked from the other device"); - break; - case "delete_user": - dispatch(resetAuthData()); - toast("Your account has been deleted"); - break; - default: - break; - } - } - break; - case "related_groups": - console.info("sse fill channels from streaming", data); - dispatch(fillChannels(data.groups)); - break; - case "joined_group": - console.info("sse joined group", data.group); - dispatch(addChannel(data.group)); - break; - case "group_changed": - { - const { gid, ...rest } = data; - dispatch( - updateChannel({ - gid, - ...rest - }) - ); - } - break; - case "user_joined_group": - { - console.info("sse new user joined group", data.gid); - const { gid, uid: uids } = data; - // 去重 - dispatch( - updateChannel({ - operation: "add_member", - gid, - members: uids - }) - ); - } - break; - case "user_leaved_group": - { - const { gid, uid: uids } = data; - if (uids.findIndex((uid) => uid == loginUid) > -1) { - dispatch(removeChannel(gid)); - } else { - dispatch( - updateChannel({ - operation: "remove_member", - gid, - members: uids - }) - ); - } - } - break; - case "kick_from_group": - console.info("sse kicked from group", data.gid); - dispatch(removeChannel(data.gid)); - break; - case "pinned_message_updated": - { - // const {gid,mid,msg}=data; - dispatch(updatePinMessage(data)); - } - break; - case "chat": - { - chatMessageHandler(data, dispatch, { - ready, - loginUid, - readUsers, - readChannels - }); - } - break; - - default: - console.info("sse event data", data); - break; + } + break; + case "related_groups": + dispatch(fillChannels(data.groups)); + break; + case "joined_group": + dispatch(addChannel(data.group)); + break; + case "group_changed": + { + const { gid, ...rest } = data; + dispatch(updateChannel({ gid, ...rest })); + } + break; + case "user_joined_group": { + const { gid, uid: uids } = data; + // 去重 + dispatch(updateChannel({ operation: "add_member", gid, members: uids })); + break; } - }; - }, - [afterMid, usersVersion], - ); - + case "user_leaved_group": { + const { gid, uid: uids } = data; + if (uids.findIndex((uid) => uid == loginUid) > -1) { + dispatch(removeChannel(gid)); + } else { + dispatch(updateChannel({ operation: "remove_member", gid, members: uids })); + } + break; + } + case "kick_from_group": + dispatch(removeChannel(data.gid)); + break; + case "pinned_message_updated": + dispatch(updatePinMessage(data)); + break; + case "chat": { + chatMessageHandler(data, dispatch, { + ready, + loginUid, + readUsers, + readChannels + }); + break; + } + default: + break; + } + }; + }, [afterMid, usersVersion]); const stopStreaming = () => { - console.info("sse stop streaming"); if (SSE) { SSE.close(); SSE = undefined; @@ -321,13 +275,11 @@ export default function useStreaming() { } return () => { if (streamingReady && !hasOpened) { - console.log("stop from streamingReady"); stopStreaming(); } }; }, [streamingReady]); - return { setStreamingReady, startStreaming,