當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript ServerApp.channel方法代碼示例

本文整理匯總了TypeScript中@feathersjs/feathers.ServerApp.channel方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript ServerApp.channel方法的具體用法?TypeScript ServerApp.channel怎麽用?TypeScript ServerApp.channel使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在@feathersjs/feathers.ServerApp的用法示例。


在下文中一共展示了ServerApp.channel方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1:

  app.on('connection', (connection) => {
    app.channel('anonymous').join(connection);

    app.channel('all').join(connection);

    app.channel('region:eu').join(connection);

  });
開發者ID:TF2PickupNET,項目名稱:TF2Pickup,代碼行數:8,代碼來源:configure-channels.ts

示例2: async

  return async (payload: Payload, meta: Meta) => {
    if (meta.provider === 'rest') {
      return;
    }

    try {
      const user = await getUserFromPayload(app, payload);

      if (user === null) {
        return;
      }

      // Check if the userId is still authenticated on any other socket
      const isStillConnected = app
        .channel('authenticated')
        .filter(connection => connection.user && connection.user.id === user.id)
        .length > 0;

      // Don't set the userId to online: false when the userId has still active sockets
      if (isStillConnected) {
        return;
      }

      await app.service('users').patch(user.id, {
        online: false,
        lastOnline: Date.now(),
      });

      log('Successfully logged out user', { userId: user.id });
    } catch (error) {
      log('Error in logout callback', { error });
    }
  };
開發者ID:TF2PickupNET,項目名稱:TF2Pickup,代碼行數:33,代碼來源:on-logout.ts

示例3: async

  return async (data, cb) => {
    const user = connection.feathers.user;

    // Make sure a userId is authenticated
    if (!user) {
      return cb(new NotAuthenticated());
    }

    const oldRegion = user.region;

    try {
      await app.service('users').patch(user.id, { region: data.region });

      // Get every connection for the user
      const connections = app
        .channel(`region:${oldRegion}`)
        .filter(conn => conn.user.id === user.id);

      // Leave the old region channel and join the new one
      connections.connections.forEach((conn) => {
        app.channel(`region:${oldRegion}`).leave(conn);
        app.channel(`region:${data.region}`).join(conn);
      });

      log('Successfully changed the region', {
        userId: user.id,
        data,
      });

      return cb(null);
    } catch (error) {
      log('Error while changing region', {
        userId: user.id,
        error,
        data,
      });

      return cb(error);
    }
  };
開發者ID:TF2PickupNET,項目名稱:TF2Pickup,代碼行數:40,代碼來源:on-change-region.ts

示例4:

 connections.connections.forEach((conn) => {
   app.channel(`region:${oldRegion}`).leave(conn);
   app.channel(`region:${data.region}`).join(conn);
 });
開發者ID:TF2PickupNET,項目名稱:TF2Pickup,代碼行數:4,代碼來源:on-change-region.ts

示例5:

 (data: UserSettings) => app
   .channel('authenticated')
   .filter(connection => connection.user.id === data.id),
開發者ID:TF2PickupNET,項目名稱:TF2Pickup,代碼行數:3,代碼來源:index.ts


注:本文中的@feathersjs/feathers.ServerApp.channel方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。