Skip to content

realtime app chatofpomelo chinese

fantasyni edited this page May 3, 2014 · 1 revision

概述

pomelo是一个游戏服务器框架,与以往单进程的游戏框架不同, 它是高性能、高可伸缩、分布式多进程的游戏服务器框架,并且使用很简单。它包括基础开发框架和一系列相关工具和库,可以帮助开发者省去游戏开发中枯燥的重复劳动和底层逻辑工作,免除开发者的重造轮子,让开发者可以更多地去关注游戏的具体逻辑,大大提高开发效率。pomelo强大的可伸缩性和灵活性使得pomelo也可以作为通用的分布式实时应用开发框架,用于一些高实时应用的开发,而且pomelo在很多方面的表现甚至超越了现有的开源实时应用框架。pomelo支持所有主流平台的客户端,并提供了客户端的开发库,使得客户端的开发变得很友好。 通过使用 Bearcat, 基于pomelo开发的实时应用将会变得更加简单, 快速和可维护.

让我们开始Bearcat实战系列教程 -- realtime app chatofpomelo

预热

Pomelo 对handler和remote进行了抽象, 开发者只需要依照pomelo的规范在指定的文件夹下面编写好handler和remote用以处理客户端的请求和rpc的调用, 就可以很快的搭建起弹性, 可伸缩的实时应用. handler 和 remote 其实都可以封装成为一个简单 POJOs, 通过bearcat进行统一管理, 就可以使得handler和remote里面的代码不再孤立, 变的简单, 可重用的和可维护的.
像这样的问题都可以迎刃而解
require 不够友好
handler共享

配置 package.json 和 context.json

添加 bearcat 到 package.json

"bearcat": "~0.1.0"

添加 context.json

{
	"name": "chatofpomelo-websocket-bearcat",
	"beans": []
}

添加 bearcat 到 app.js

var contextPath = require.resolve('./context.json');
var bearcat = Bearcat.createApp([contextPath]);

bearcat.start(function() {
	app.set('bearcat', bearcat);
	// start app
	app.start();
});

封装 handler 和 remote

gateHandler.js

module.exports = function(app) {
	var bearcat = app.get('bearcat');
	return bearcat.getBean({
		id: "gateHandler",
		func: Handler,
		args: [{
			name: "app",
			value: app
		}]
	});
};

var Handler = function(app) {
	this.app = app;
};

chatRemote.js

module.exports = function(app) {
	var bearcat = app.get('bearcat');
	return bearcat.getBean({
		id: "chatRemote",
		func: ChatRemote,
		args: [{
			name: "app",
			value: app
		}]
	});
};

var ChatRemote = function(app) {
	this.app = app;
	this.channelService = app.get('channelService');
};

跑起来

node app.js

项目完整的代码在 chatofpomelo-websocket-bearcat