前言
cocos2d-x框架进行游戏开发的时候,会用到服务器,我们以php为例,进行说明如何与客户端通信。
Session是什么
session是一个强大的缓存技术,作用类似于 cookie,我们可以在登录的时候把必要的信息(如用户名)存储在session中,也可以根据session变量是否失效来判断用户是否已经登出。在web中,session会随着窗口的关闭而注销;session是将变量保存在服务器上,而cookie是将变量保存在客户端中。
PHP服务器端代码
第一次初始化,一般在登录的时候返回
<?php
Session_start();
$sessionId = session_id();//得到sessionid
$_SESSION['loginData'] = "zwcwu";
<pre name="code" class="php">echo $sessionID;//将session下发给客户端
?>
第二次请求
<?php
session_id("客户端保存的上次的sessionid");//注意这个时候session_id()这个函数是带有参数的
session_start();//这个函数必须在session_id()之后
echo "上次保存的用户名:" . $_SESSION['loginData'];
echo
?>
客户端cocos2dx-JS 3.4代码
sendWithUrl : function(url, params, callback){
var xhr = cc.loader.getXMLHttpRequest();
xhr.open("POST", url); //url:http://127.0.0.1:8080/request.php
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
xhr["onloadend"] = function(){
var sc = -1
if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status <= 207)) {
sc = 0;
}
var json = JSON.parse(xhr.responseText)
var rc = parseInt(json["code"])
callback(sc, rc, json);
}
xhr.send(params);
}