• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

TypeScript xev.on函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了TypeScript中xev.on函数的典型用法代码示例。如果您正苦于以下问题:TypeScript on函数的具体用法?TypeScript on怎么用?TypeScript on使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了on函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。

示例1: subscribe

	subscribe(channelName: string): void {
		if (this.list[channelName] == null) {
			const handler = this.handler(channelName);
			this.parentEmitter.on(channelName, handler);
			this.list[channelName] = handler;
		}
	}
开发者ID:Frost-Dev,项目名称:Frost,代码行数:7,代码来源:XevPubSub.ts


示例2: function

/**
 * Report server stats regularly
 */
export default function() {
	const log = new Deque<any>();

	ev.on('requestServerStatsLog', id => {
		ev.emit('serverStatsLog:' + id, log.toArray());
	});

	async function tick() {
		const cpu = await cpuUsage();
		const usedmem = await usedMem();
		const totalmem = await totalMem();
		const disk = diskusage.checkSync(os.platform() == 'win32' ? 'c:' : '/');

		const stats = {
			cpu_usage: cpu,
			mem: {
				total: totalmem,
				used: usedmem
			},
			disk,
			os_uptime: os.uptime(),
			process_uptime: process.uptime()
		};
		ev.emit('serverStats', stats);
		log.push(stats);
		if (log.length > 50) log.shift();
	}

	tick();

	setInterval(tick, interval);
}
开发者ID:ha-dai,项目名称:Misskey,代码行数:35,代码来源:server-stats.ts


示例3: function

export default async function(
	request: websocket.request,
	connection: websocket.connection,
	subscriber: Xev,
	user: IUser
) {
	const mute = await Mute.find({ muterId: user._id });
	const mutedUserIds = mute.map(m => m.muteeId.toString());

	// Subscribe stream
	subscriber.on('global-timeline', async note => {
		//#region 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
		if (mutedUserIds.indexOf(note.userId) != -1) {
			return;
		}
		if (note.reply != null && mutedUserIds.indexOf(note.reply.userId) != -1) {
			return;
		}
		if (note.renote != null && mutedUserIds.indexOf(note.renote.userId) != -1) {
			return;
		}
		//#endregion

		connection.send(JSON.stringify({
			type: 'note',
			body: note
		}));
	});
}
开发者ID:ha-dai,项目名称:Misskey,代码行数:29,代码来源:global-timeline.ts


示例4: function

export default function(request: websocket.request, connection: websocket.connection, subscriber: Xev, user: any): void {
	const q = request.resourceURL.query as ParsedUrlQuery;
	const listId = q.listId as string;

	// Subscribe stream
	subscriber.on(`user-list-stream:${listId}`, data => {
		connection.send(JSON.stringify(data));
	});
}
开发者ID:ha-dai,项目名称:Misskey,代码行数:9,代码来源:user-list.ts


示例5: function

export default async function(
	request: websocket.request,
	connection: websocket.connection,
	subscriber: Xev,
	user: IUser
) {
	// Subscribe stream
	subscriber.on('hybrid-timeline', onEvent);
	subscriber.on(`hybrid-timeline:${user._id}`, onEvent);

	const mute = await Mute.find({ muterId: user._id });
	const mutedUserIds = mute.map(m => m.muteeId.toString());

	async function onEvent(note: any) {
		//#region 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
		if (mutedUserIds.indexOf(note.userId) != -1) {
			return;
		}
		if (note.reply != null && mutedUserIds.indexOf(note.reply.userId) != -1) {
			return;
		}
		if (note.renote != null && mutedUserIds.indexOf(note.renote.userId) != -1) {
			return;
		}
		//#endregion

		// Renoteなら再pack
		if (note.renoteId != null) {
			note.renote = await pack(note.renoteId, user, {
				detail: true
			});
		}

		connection.send(JSON.stringify({
			type: 'note',
			body: note
		}));
	}
}
开发者ID:ha-dai,项目名称:Misskey,代码行数:39,代码来源:hybrid-timeline.ts


示例6: switch

	connection.on('message', async data => {
		const msg = JSON.parse(data.utf8Data);

		switch (msg.type) {
			case 'api':
				// 新鮮なデータを利用するためにユーザーをフェッチ
				call(msg.endpoint, await User.findOne({ _id: user._id }), app, msg.data).then(res => {
					connection.send(JSON.stringify({
						type: `api-res:${msg.id}`,
						body: { res }
					}));
				}).catch(e => {
					connection.send(JSON.stringify({
						type: `api-res:${msg.id}`,
						body: { e }
					}));
				});
				break;

			case 'alive':
				// Update lastUsedAt
				User.update({ _id: user._id }, {
					$set: {
						'lastUsedAt': new Date()
					}
				});
				break;

			case 'read_notification':
				if (!msg.id) return;
				readNotification(user._id, msg.id);
				break;

			case 'capture':
				if (!msg.id) return;
				log(`CAPTURE: ${msg.id} by @${user.username}`);
				subscriber.on(`note-stream:${msg.id}`, onNoteStream);
				break;

			case 'decapture':
				if (!msg.id) return;
				log(`DECAPTURE: ${msg.id} by @${user.username}`);
				subscriber.off(`note-stream:${msg.id}`, onNoteStream);
				break;
		}
	});
开发者ID:ha-dai,项目名称:Misskey,代码行数:46,代码来源:home.ts


示例7: function

export default function() {
	const log = new Deque<any>();

	const p = childProcess.fork(__dirname + '/notes-stats-child.js');

	p.on('message', stats => {
		ev.emit('notesStats', stats);
		log.push(stats);
		if (log.length > 100) log.shift();
	});

	ev.on('requestNotesStatsLog', id => {
		ev.emit('notesStatsLog:' + id, log.toArray());
	});

	process.on('exit', code => {
		process.kill(p.pid);
	});

}
开发者ID:ha-dai,项目名称:Misskey,代码行数:20,代码来源:notes-stats.ts


示例8: function

export default function(request: websocket.request, connection: websocket.connection, subscriber: Xev, user: any): void {
	const q = request.resourceURL.query as ParsedUrlQuery;
	const otherparty = q.otherparty as string;

	// Subscribe messaging stream
	subscriber.on(`messaging-stream:${user._id}-${otherparty}`, data => {
		connection.send(JSON.stringify(data));
	});

	connection.on('message', async (data) => {
		const msg = JSON.parse(data.utf8Data);

		switch (msg.type) {
			case 'read':
				if (!msg.id) return;
				read(user._id, otherparty, msg.id);
				break;
		}
	});
}
开发者ID:ha-dai,项目名称:Misskey,代码行数:20,代码来源:messaging.ts


示例9: function

export default function(request: websocket.request, connection: websocket.connection, subscriber: Xev, user: any): void {
	// Subscribe reversi stream
	subscriber.on(`reversi-stream:${user._id}`, data => {
		connection.send(JSON.stringify(data));
	});

	connection.on('message', async (data) => {
		const msg = JSON.parse(data.utf8Data);

		switch (msg.type) {
			case 'ping':
				if (msg.id == null) return;
				const matching = await Matching.findOne({
					parentId: user._id,
					childId: new mongo.ObjectID(msg.id)
				});
				if (matching == null) return;
				publishUserStream(matching.childId, 'reversi_invited', await pack(matching, matching.childId));
				break;
		}
	});
}
开发者ID:ha-dai,项目名称:Misskey,代码行数:22,代码来源:reversi.ts


示例10: function

export default function(request: websocket.request, connection: websocket.connection, subscriber: Xev, user: any): void {
	// Subscribe messaging index stream
	subscriber.on(`messaging-index-stream:${user._id}`, data => {
		connection.send(JSON.stringify(data));
	});
}
开发者ID:ha-dai,项目名称:Misskey,代码行数:6,代码来源:messaging-index.ts



注:本文中的xev.on函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
TypeScript xhr.get函数代码示例发布时间:2022-05-25
下一篇:
TypeScript xev.emit函数代码示例发布时间:2022-05-25
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap