到联网,在游戏中也是非常核心的模块,在官方Js-test中我们可以找到联网部分

的NetworkTest文件下有两个类

SocketIOTest.js(Socket 类)

WebSocketTest.js(WebSocket 类)

【Cocos2d-Js基础教学(6)网络层(弱联网)的封装及使用】

以上都是强联网类型的使用方法,官方已经封装的非常好用了,大家可以细读研究;

那么做一个联网交互游戏,也是并不复杂的;

那么下面我们来重点说下一弱联网的使用;

在Js-test中的弱联网的例子是:

XHRTest.js

【Cocos2d-Js基础教学(6)网络层(弱联网)的封装及使用】

这个类中包含了对弱联网的使用的基本方法,还包含了一个Buffer处理的方法,那么我们就对这个类开始进行封装

src目录下新建一个NetWork文件夹;

再新建一个HttpHelper.js(弱联网 类)

HttpHelper.js:

/**
 * Created by yangshengjiepro on 15/4/23.
 */

function  Http(){
    var _succCallback = function(){};
    var _errCallback = function(){};

}
Http.prototype.getJSON = function(url,data,callBack,errorCallBack ){
    if(typeof (callBack) == "function"){
        this._succCallback = callBack;
    }else{
        this._succCallback = function(){}
    }
    if(typeof (errorCallBack) == "function"){
        this. _errorCallBack = errorCallBack;
    }
    var xmlHttp = new XMLHttpRequest();

    var params = "";
    if(typeof(data)=="object"){
        for(key in data){
            params+=(key+"="+data[key]+"&");
        }
    }else{
        params = data;
    }

    xmlHttp.open("POST",url);
    xmlHttp.send(params);

    var me=this;
    //===================  ajax回调
    xmlHttp.onreadystatechange = function(){

        cc.log(url+" "+ JSON.stringify(params) +xmlHttp.responseText);
        if(xmlHttp.readyState == 4){
            if(xmlHttp.status == 200){
                MLog.l("data :",xmlHttp.responseText);
                var strData = "";
                if(xmlHttp.responseText.length>0){ //当内容为空时会有"[]"
                    strData=xmlHttp.responseText;
                    me._succCallback(strData);

                }else{
                    MLog.l("什么都没有,请检查网络");
                    return;
                }
            }
            else{
                //网络错误处理
                if(me._errorCallBack) {
                    JSON.stringify(me._errorCallBack);
                    me._errorCallBack();
                }
            }
        }else{
            //网络错误处理
            if(me._errorCallBack) {
                me._errorCallBack();
            }
        }
    }
}
View Code

相关文章:

  • 2021-06-15
  • 2021-08-31
  • 2021-08-02
  • 2021-09-23
  • 2021-06-27
猜你喜欢
  • 2022-12-23
  • 2021-11-11
  • 2022-01-10
  • 2021-08-09
  • 2021-09-18
相关资源
相似解决方案