帮助列表
帮助列表
DMS扩展之游戏开发 <<返回

前面都是些DMS基础功能应用,下面我们来点个性化的开发,首先看看准备工作:
1.前端ui设计与开发,妹子帅哥皆行,妹子更好
2.web后端服务开发,工作的重点皆在此,需要汉子来担当

好了,准备就绪,下面进入游戏开发主题:
1.有请妹子为游戏设计个倩丽的ui界面吧,一个好的界面,就是一个好的开始!
2.请汉子站出来,解决以下问题:
a.游戏的算法逻辑
b.游戏的数据存储
c.游戏的发展展望,以及可能面临的web负载压力

嘿,好像到此,游戏已经开发完成了,但是还没有:
1.按DMS的开通流程,开通一个DMS应用
2.在前面游戏页面代码中引用
<script type="text/javascript" src="http://web.ics.aodianyun.com/DMS/rop_client.js"></script>
<script type="text/javascript" src="http://web.ics.aodianyun.com/DMS/ics_client.js"></script>
这2个是 DMS的连接基础,因为是个性开发,有连接基础就够了
3.建立DMS连接:
参照:
http://cdn.aodianyun.com/DMS/aodian_DMS.js
http://cdn.aodianyun.com/DMS/layout/defaultInner/defaultInner.js
建立2个js文件,
一个是 DMS的配置文件
一个是DMS的页面逻辑处理
配置文件不多说,相信妹子一眼就看明白了,

下面重点说下逻辑处理
1.登陆DMS:
ROP.Enter(hcs_ID); //ROP是DMS通讯库里面的全局变量,hcs_ID 是开通流量里面申请的
2.处理3个数据监听:
ROP.On("enter_suc",function(){
ROP.Subscribe("topic");// topic 是指游戏准备让前端收到哪些主题数据,所有的数据都是按主题发给前端的,类似报纸订阅,订阅什么,收到什么,可以多份订阅
ROP.Subscribe("topic2");
ROP.Subscribe("topic3");
ROP.UnSubscribe("topic3");//取消订阅,订阅取消订阅,只要登陆成功了,可以在任何地方调用
});
ROP.On("enter_fail",function(err){
console.log(err);//可以看到为啥登陆失败了,常见的 domain not allow ,说明是 Enter时带的hcs_ID
与当前的域名不符,去控制台,把当前域名加上,等5分钟生效即可
});
ROP.On("publish_data",function(data){
// 订阅报纸后,就收到报社发来的报文了,具体内容,请问报社,我也不知道是啥
// 举例下,汉子在后面向 topic1 发送了 {cmd:"chat",text:"hello !"},那topic1 的所有人都会收到这条聊天,或者 汉子向 主题为 game1 发送了 {cmd:"start",...},那 game1 所有人都会收到 start 命令
});


3.向web后端发送请求:
目前很直接,用 http 请求向后端发送web请求即可,很直白很常用的做法

4.web后端向前面页面发送数据:
web请求,如果只是返回给请求人,那可以直接返回
如果是要根据请求,向某一个主题人群发送,那需要用到这个:
publish.DMS.aodianyun.com:8080
用web请求,向上面的地址发起web post请求,请求格式为:
地址: http://publish.DMS.aodianyun.com:8080/publish/hcs_id/topic
hcs_id 替换为申请的hcs_ID
topic 替换为想对哪个topic发送,比如topic1
body:{text:'you message!',key:youkey}
text: 就是要发送的内容,正常情况下,应该是 JSON字符串,如
{'cmd:chat',tx:'hello!'}
key: 就是申请DMS服务时,填写的验证码,具体值在 DMS的控制台里面查下

注意:一定要post模式啊!


5.假如有些消息,想直接运行前端对前端的发送,可以使用:
ROP.Publish(message,topic);
message,是想发送的内容,正常情况下,应该是{cmd:'chat',txt:'hello'};
注意:这种消息发送是不安全的,是不经过游戏后台的,不推荐使用!

到此,好像游戏已经跑起来了吧?前后端已经互通了!

 

 


<<返回