标签:支持 strong pre ini 使用 activity string net nec
游戏链接:http://game.wanlitong.com/?act=game_daxiaowang

一 socket通讯
1 游戏使用js原生开发。通讯使用socket.io。
2 游戏html页面定义通讯地址和token
// socket 连接的地址 GM.socketIoUrl_RJ = "https://activity.games.1768.com/"; GM.token_RJ = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiI3MjU5Njc1NiIsImV4cCI6MTQ5NDczMTg1N30.DuoBBaJeQBRpsLnYaTWEXLb1tgMAyCXh9yHgb4BkL9E"; GM.gameType = "1"; // 判断是否 需要添加socket处理游戏 // 是否需要socket 支持 GM.needAddSocket = GM.userLogged && GM.gameType === ‘1‘;
3 游戏通用js文件
http://h2.jkimg.net/game/js/v2/common-game.js?v=201704121801
连接socket
init:function(){
// 连接至游戏服务器
try{
this._socket = window.io.connect(GM.socketIoUrl_RJ);
this._router()
.emit({
cmd: ‘act::init‘
});
}catch(e){
GM.log(‘socket connect error‘);
}
return this;
}
发送数据
// 发送命令
emit: function(data){
data = data || {};
var dataDefault ={
params:{
gameId: GM.gameId,
token: GM.token_RJ
}
}
$.extend(true, data, dataDefault); //深度拷贝,将data和dataDefault合并
data = JSON.stringify(data);
GM.log(‘推送:‘+ data);
this._socket.emit( ‘router‘, Base64.encode(data) );
return this;
}
数据格式JSON, 协议{gameId, token, 其他数据, ...},将json转成字符串,然后用Base64加密后发送
接收数据
//接收命令
_router:function(){
var self = this;
// 通过 router 模块,监听服务器返回的数据
self._socket.on(‘router‘, function(data) {
data = Base64.decode(data);
GM.log(‘接收:‘+ data);
GM.log(‘‘);
data = JSON.parse(data);
var cmd = data.cmd;
var res = data.res;
switch(cmd){
case ‘act::init‘:
self._hanleData(res);
break;
default:
break;
}
})
.on(‘connect_error‘, function(data){
GM.log(‘connect_error‘);
});
return this;
}
将data字符串用Base64解密,再还原成JSON,根据cmd将数据返回数据res分发处理。
标签:支持 strong pre ini 使用 activity string net nec
原文地址:http://www.cnblogs.com/gamedaybyday/p/6708456.html