fix: 修复断线重连后数据不同步的bug

pull/13/head
moonrailgun 4 years ago
parent 368486e0c0
commit 3157a392aa

@ -23,7 +23,7 @@ type SocketEventRespones<T = unknown> =
* Socket * Socket
*/ */
export class AppSocket { export class AppSocket {
listener: [string, (data: unknown) => void][] = []; private listener: [string, (data: unknown) => void][] = [];
constructor(private socket: Socket) { constructor(private socket: Socket) {
socket.onAny((eventName: string, data: unknown) => { socket.onAny((eventName: string, data: unknown) => {
@ -70,6 +70,13 @@ export class AppSocket {
this.socket.close(); this.socket.close();
} }
/**
* 线
*/
onReconnect(cb: () => void) {
this.socket.on('reconnect', cb);
}
/** /**
* Socket * Socket
*/ */

@ -22,6 +22,12 @@ import { appendUserDMConverse } from '../model/user';
export function setupRedux(socket: AppSocket, store: AppStore) { export function setupRedux(socket: AppSocket, store: AppStore) {
initial(socket, store); initial(socket, store);
listenNotify(socket, store); listenNotify(socket, store);
// 断线重连重新初始化信息
socket.onReconnect(() => {
console.warn('因为断线重连触发重新同步远程数据');
initial(socket, store);
});
} }
/** /**

@ -13,6 +13,9 @@ const groupSlice = createSlice({
name: 'group', name: 'group',
initialState, initialState,
reducers: { reducers: {
/**
*
*/
appendGroups(state, action: PayloadAction<GroupInfo[]>) { appendGroups(state, action: PayloadAction<GroupInfo[]>) {
const groups = action.payload; const groups = action.payload;

Loading…
Cancel
Save