Pomelo 新手周计划学习笔记(一)
发布于 2年前 作者 youxiachai 3773 次浏览

##前言## 由于目前pomelo公开资料没有什么教程类的,打算花一周时间学习一下pomelo.所以就简单的写个学习笔记,用来记录一下。

应该会有7篇,这篇应该是星期一学习的量,由于各种原因,总结慢了。。。 ##通读api## 个人认为,竟然要使用一个框架,对于框架提供的api必须要烂熟与心,pomelo的api 还是挺少的,所以量化一下,让初学者感觉读api不是那么可怕的事情。

###7个大类###

Application (31 个方法)

由于这块的方法比较多,简单分一下类

环境

getBase();

set();

get

enabled();

disabled();

enbale();

disable();

configure();

初始化

start();

registerAdmin()

filter();

before()

after()

load()

loadConfig();

组件相关 route

获取相关配置,组件方法 getMaster()

getCurServer()

getServerId()

getServerType();

getServers();

getServersFromConfig();

getServerTypes();

getServerById();

getServerFromConfig();

getServersByType();

isFrontend()

isBackend()

isMaster()

addServers();

removerServers();

下面几个大类,方法比较少就不分类了。

ChannelService (5 个方法)

Channel (6 个方法)

LocalSessionService ( 4个方法)

LocalSession (6个方法)

SessionService (4个方法)

Pomelo(1个方法)

##Pomelo : Hello world ##

安装好pomelo 要创建一个项目很简单:

pomelo init heloworld

ok,我们的一个helloworld 就这样完成了。

###客户端编写### 我们来看一下,客户端如何与服务端进行通信的

     var pomelo = window.pomelo;
      var host = "127.0.0.1";
      var port = "3010";
      function show() {
        pomelo.init({
          host: host,
          port: port,
          log: true
        }, function() {
        pomelo.request("connector.entryHandler.entry", "hello pomelo", function(data) {
            alert(data.msg);
          });
        });
      }

从request请求connnecor.entryHandler.entry我们在game-server目录 app/servers/connector/handler/entryHandler.js 找到这么一个文件,打开这个文件以后我们发现了entry这个方法,现在我们能感叹,对于pomelo的通讯居然能够做到如此简单,为了验证我们的想法。我们在这个js文件里面加入

Handler.prototype.helloworld = function(msg, session, next){
    console.log(msg);
    console.log(session);
    next(null,  {code: 200, msg: 'Hello world!'});
}

接着客户端修改:

  pomelo.request("connector.entryHandler.helloworld", "hello pomelo", function(data) {
            alert(data.msg);
          });
        });

运行项目,然后就能看到我们成功完成服务端与客户端的通讯了。

今天,我们简单的搞明白了pomelo 如何创建项目,然后,客户端如何发起请求,已经服务端如何编写能够接受客户端请求的方法。

也欢迎来我的博客看。。。

10 回复

学习了。

POMELO 是个游戏框架,怎么跟游戏前端的没有看到?给我的感觉就是个增强版的通讯工具(enhanced sockit.io)。

都是神人,那么晚都没睡

实际上pomelo 就是一个游戏后端的框架。。。前端没pomelo的事情。。。(个人观点),我的感觉跟你的一样。。不过,实际上,一个网络游戏,背后干的不就是一个基于数据的通讯?

@youxiachai

这么说 POMELO 可以用于非游戏类的开发。

针对游戏功能,POMELO 可以增加游戏室/桌管理功能。游戏后台还是有很多可加的。

@leapon pomelo官方的定义是构建实时应用。。。。你提到的就是pomelo干的事情。。

惭愧, 写教程真是个艰巨的任务啊

赞一个~ 期待后续~

pomelo是否是只支持socket.io,不支持socket?

服务端是支持socket的,不过现在还没有官方支持的客户端。。

你可以参考这个issue https://github.com/NetEase/pomelo/issues/229

回到顶部