MCPcopy Create free account
hub / github.com/apitable/apitable / createSocket

Method createSocket

packages/widget-sdk/src/resource/service.ts:300–351  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

298 }
299
300 private createSocket() {
301 const state = this.store.getState();
302 const spaceId = state.space.activeId || state.share.spaceId;
303 const version = window['__initialization_data__'].version;
304 const socket = SocketIO(Url.WEBSOCKET_NAMESPACE, {
305 path: Url.ROOM_PATH,
306 transports: ['websocket'],
307 secure: true,
308 query: {
309 version,
310 spaceId,
311 },
312 });
313 socket.on('disconnect', (reason: any) => {
314 console.warn('! ' + 'socket disconnect from server');
315 // Player.doTrigger(Events.app_error_logger, { error: new Error('socket disconnect reason: ' + reason) });
316
317 this.store.dispatch(StoreActions.setReconnecting(true));
318 this.roomService.setConnected(false);
319 let count = 1;
320
321 const interval = window.setInterval(async () => {
322 if (socket.connected) {
323 clearInterval(interval);
324 await this.roomService.watch();
325 this.roomService.setConnected(true);
326 this.store.dispatch(StoreActions.setReconnecting(false));
327 console.log('connected');
328 return;
329 }
330 if (reason === 'io server disconnect') {
331 // the disconnection was initiated by the server, you need to reconnect manually
332 socket.connect();
333 console.warn('! ' + `room attempt to reconnect ${count++} ...`);
334 }
335 }, RECONNECT_DELAY);
336 });
337
338 socket.on('connect', () => {
339 this.reportSocketError = true;
340 this.store.dispatch(StoreActions.setConnected(true));
341 });
342
343 socket.on('connect_error', () => {
344 if (!this.reportSocketError) {
345 return;
346 }
347 this.reportSocketError = false;
348 // Player.doTrigger(Events.app_error_logger, { error: new Error('socket has happened some error: ' + JSON.stringify(error)) });
349 });
350 return socket;
351 }
352
353 getCollaEngine(resourceId: string) {
354 return this.roomService.collaEngineMap.get(resourceId);

Callers 1

initMethod · 0.95

Calls 7

warnMethod · 0.80
setConnectedMethod · 0.80
onMethod · 0.45
dispatchMethod · 0.45
watchMethod · 0.45
logMethod · 0.45
connectMethod · 0.45

Tested by

no test coverage detected