[原]pomelo基础知识(一)
1.pomelo基本介绍 http://blog.gfdsa.net/2013/06/04/pomelo/pomelo_study_two/
2.如何配置一个gate服务器
(1)首先 需要在gameserver下的 app.js添加如下代码
app.configure('production|development', 'gate', function(){
app.set('connectorConfig',
{
connector : pomelo.connectors.hybridconnector,
});
});
(2)在gameserver下的config的server.json 和adminServer.json 配置如下:
server.json
adminServer.json
(3)在gameserver的app/servers新建gate/handler/gateHandler.js 代码可以抄connector/handler/entryHandler.js
module.exports = function(app) {
return new Handler(app);
}; var Handler = function(app) {
this.app = app;
}; /**
* New client entry.
*
* @param {Object} msg request message
* @param {Object} session current session object
* @param {Function} next next step callback
* @return {Void}
*/
Handler.prototype.entry = function(msg, session, next) {
var res = this.app.getServersByType('connector'); //获得connector类型服务器 返回值为connector类型服务器的数组
console.log(res[0].clientPort)
next(null, {code: 200,host: res[0].host,port: res[0].clientPort});//取第一个connector类型服务器的ip和端口
}; /**
* Publish route for mqtt connector.
*
* @param {Object} msg request message
* @param {Object} session current session object
* @param {Function} next next step callback
* @return {Void}
*/
Handler.prototype.publish = function(msg, session, next) {
var result = {
topic: 'publish',
payload: JSON.stringify({code: 200, msg: 'publish message is ok.'})
};
next(null, result);
}; /**
* Subscribe route for mqtt connector.
*
* @param {Object} msg request message
* @param {Object} session current session object
* @param {Function} next next step callback
* @return {Void}
*/
Handler.prototype.subscribe = function(msg, session, next) {
var result = {
topic: 'subscribe',
payload: JSON.stringify({code: 200, msg: 'subscribe message is ok.'})
};
next(null, result);
};
(4)客户端请求:(我是用quick实现的,根据自己需要 只要路由发“gate.gateHandler.entry”就行)
local route = "gate.gateHandler.entry"
local msg = { uid = "luaClientWindows" }
client:pomeloRequest(route,tostring(json.encode(msg)))
实验结果:
aaarticlea/png;base64,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" alt="" />
[原]pomelo基础知识(一)的更多相关文章
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Oracle数据库基础知识
oracle数据库plsql developer 目录(?)[-] 一 SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...
- 图解TCP/IP→第2章基础知识
####TCP.IP背景**关键词:ARPANET,UNIX,分组交换技术,*ARPANET(阿帕网),也是全球互联网的鼻祖.阿帕网的成功也充分证明了基于分组交换技术的通信方法的可行性.*20世纪70 ...
- C++ 顺序容器基础知识总结
0.前言 本文简单地总结了STL的顺序容器的知识点.文中并不涉及具体的实现技巧,对于细节的东西也没有提及.一来不同的标准库有着不同的实现,二来关于具体实现<STL源码剖析>已经展示得全面细 ...
- Spring基础知识
Spring基础知识 利用spring完成松耦合 接口 public interface IOutputGenerator { public void generateOutput(); } 实现类 ...
- Oracl基础知识(一)
概述 Oracle功能繁多,接触Oracle不深,将接触到的基础知识整理下来,以便不时之需.整理的内容主要有Expdp指令实现数据库备份,Impdp指令实现数据库还原,以及用户.表空间的定义.整理的数 ...
- Java基础知识系列——String
最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...
- ReactiveCocoa基础知识内容
本文记录一些关于学习ReactiveCocoa基础知识内容,对于ReactiveCocoa相关的概念如果不了解可以网上搜索:RACSignal有很多方法可以来订阅不同的事件类型,ReactiveCoc ...
- SQL server基础知识(表操作、数据约束、多表链接查询)
SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...
随机推荐
- git 修改文件内容
在安装Git和创建版本库的时候,我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容 [root@node1 gi ...
- Linux.Centos安装scp反复失败的解决方式
现象 在A服务器用scp命令从B服务器拉文件时, 报找不到scp指令的错误 在A服务器运行 scp --help 发现是有指令的 在B服务器上 常规方式, 安装openssh-clients yum ...
- SpringBoot在自定义类中调用service层等Spring其他层
解决方案: 1.上代码 @Component public class ServerHandler extends IoHandlerAdapter { @Autowired protected He ...
- ActiveX学习笔记二 ActiveX在IE中安全级别问题-实现IObjectSafety接口
http://blog.csdn.net/freedomqx/article/details/4955512 使用MFC开发ActiveX控件,在IE中会提示安全问题,这个可以通过实现IObjectS ...
- Linux shell命令 cp 加上-f还是提示是否覆盖
这是由于环境变量中有 allias cp='cp -i' 为了去掉这个系统自带的别名,能够使用grep -r --include="*" "alias cp" ...
- Maven deploy部署jar到远程私服仓库
一.配置私服账号密码 修改maven配置文件,在$MAVEN_HOME/conf/setting.xml中增加如下配置: 注意,这里配置的id为releases何snapshots,当然可以改为其他, ...
- UVA 11613 Acme Corporation(不固定流量的最小费用流)
题意好长....变量好多.... 增加源点跟汇点.然后将每个月份看成一个点,然后拆成两个点u 跟 u+n. 从s向每个u连一条<n[u], m[i]>的弧,表示最多生产量及价值. 从每个u ...
- 小度WiFi
这个东西真不错,详情查看: http://wifi.baidu.com 是在京东上抢购的,但是那次抢购体验做得很次:首先,只能预约一种颜色;其次,第一天抢购了,第2天就不能抢购了;第三,等抢购完了,如 ...
- 使用LinkedHashMap来实现一个使用LRU(Least Recently Used)算法的cache
removeEldestEntry在使用put或者putAll方法插入一个新的entry到map中时被调用,是否要删除年老的entry取决于是否满足既定的条件(比如本例中的条件:MAP中entry数量 ...
- 〖Android〗我的ADT Eclipse定制
1. 配置自动补全: Windows -> preferences -> 搜索assist,修改 java xml自动触发补全:.abcdefghijklmnopqrstuvwxyzABC ...