MCPcopy Create free account
hub / github.com/CommE2E/comm / handleInitialClientSocketMessage

Method handleInitialClientSocketMessage

keyserver/src/socket/socket.js:442–508  ·  view source on GitHub ↗
(
    message: InitialClientSocketMessage,
  )

Source from the content-addressed store, hash-verified

440 }
441
442 async handleInitialClientSocketMessage(
443 message: InitialClientSocketMessage,
444 ): Promise<ServerServerSocketMessage[]> {
445 const { viewer } = this;
446 invariant(viewer, 'should be set');
447
448 const responses: Array<ServerServerSocketMessage> = [];
449
450 const { sessionState, clientResponses } = message.payload;
451
452 const payload = await fetchDataForSocketInit(viewer, sessionState);
453 responses.push({
454 type: serverSocketMessageTypes.STATE_SYNC,
455 responseTo: message.id,
456 payload,
457 });
458
459 const [
460 { serverRequests, activityUpdateResult },
461 signedIdentityKeysBlobMissing,
462 olmNotificationsSessionMissing,
463 ] = await Promise.all([
464 processClientResponses(viewer, clientResponses),
465 isCookieMissingSignedIdentityKeysBlob(viewer.cookieID),
466 isCookieMissingOlmNotificationsSession(viewer),
467 ]);
468
469 if (signedIdentityKeysBlobMissing) {
470 serverRequests.push({
471 type: serverRequestTypes.SIGNED_IDENTITY_KEYS_BLOB,
472 });
473 }
474
475 if (olmNotificationsSessionMissing) {
476 serverRequests.push({
477 type: serverRequestTypes.INITIAL_NOTIFICATIONS_ENCRYPTED_MESSAGE,
478 });
479 const { userID, cookieID, sessionID } = viewer;
480 const data = { userID, cookieID, sessionID };
481 console.log(
482 'Sending serverRequestTypes.INITIAL_NOTIFICATIONS_ENCRYPTED_MESSAGE ' +
483 JSON.stringify(data),
484 );
485 }
486
487 if (serverRequests.length > 0 || clientResponses.length > 0) {
488 // We send this message first since the STATE_SYNC triggers the client's
489 // connection status to shift to "connected", and we want to make sure the
490 // client responses are cleared from Redux before that happens
491 responses.unshift({
492 type: serverSocketMessageTypes.REQUESTS,
493 responseTo: message.id,
494 payload: { serverRequests },
495 });
496 }
497
498 if (activityUpdateResult) {
499 // Same reason for unshifting as above

Callers 1

Calls 6

fetchDataForSocketInitFunction · 0.90
processClientResponsesFunction · 0.90
pushMethod · 0.80
logMethod · 0.45

Tested by

no test coverage detected