cocos2d-js 中增加websocket连接c++服务器

服务器源码用:http://blog.csdn.net/chuanyu/article/details/45918965



cocos2d-js框架 MyJSGame,其它的都是默认生成的,自己添加了  test_connnect.js

cocos2d-js 中增加websocket连接c++服务器_第1张图片


首先在project.json 增加 src/test_connect.js

cocos2d-js 中增加websocket连接c++服务器_第2张图片


然后在 app.js中增加 test(); 调用自己添加的函数

cocos2d-js 中增加websocket连接c++服务器_第3张图片


在test_connect.js 最后先 调用 connect(),连接服务器

cocos2d-js 中增加websocket连接c++服务器_第4张图片




cocos2d-js 中增加websocket连接c++服务器_第5张图片


cocos2d-js 中增加websocket连接c++服务器_第6张图片


cocos2d-js 中增加websocket连接c++服务器_第7张图片


cocos2d-js 中增加websocket连接c++服务器_第8张图片


cocos2d-js 中增加websocket连接c++服务器_第9张图片


cocos2d-js 中增加websocket连接c++服务器_第10张图片









下面放上 整个 test_connect.js源码:



/*
test_connect.js

 */


function OutputLog(msg){
    var content = '

' + msg + '

';
    alert(content);
    //$('#consolebox').append(content);
};


function test(){
    //alert("It's a test !");
    var jsonStr = "{\"total\":100,\"data\":[{\"id\":10001,\"name\":\"scott\"},{\"id\":10002,\"name\":\"tiger\"}]}";
    //var jsonObj = window.JSON.parse(jsonStr);
    socket.send('5'+jsonStr);
};
function testView(msg){//解析网络字符串
    //alert("It's a testView !");
    var jsonObj = window.JSON.parse(msg);
    var str = "---json网络字符串解析结果:---
";
    str += "Total:"+jsonObj.total+ "
Data:
";
    for(var i=0;i         str += "id:"+jsonObj.data[i].id +", name:"+jsonObj.data[i].name+"
";
    str += "

";
    OutputLog(str);
};


function connect(){
    cc.log("connect is in");
    var host = "ws://localhost:81/test";      //host address
    //var host = "ws://"+$('#pseudo').val()+":81/cy";


    try{
        socket = new WebSocket(host);       //new a websocket
        OutputLog('Socket Status: '+socket.readyState);
        socket.onopen = function(){     //open socket
            OutputLog('Socket Status: '+socket.readyState+' (open)');
            var pseudoName = "chuanyu";
            socket.send('0'+pseudoName);    //send a init msg
        }


        socket.onmessage = function(msg){//listen
            var str = "";
            str = msg.data;
            var id  = str.substr(0, 1);
            var separator = str.indexOf("|");
            var arg1 = "";
            var arg2 = "";
            if(separator != -1)
            {
                arg1 = str.substr(1, separator-1);
                arg2 = str.substr(separator+1);
            }
            else
                arg1 = str.substr(1);


            if(id == "0"){
                OutputLog('Server reply : '+arg1);
            }
            if(id == "1"){
                OutputLog('Server echo msg : '+arg1);
            }
            if(id == "2"){
                OutputLog(arg1 + ' said : ' + arg2);
            }
            if(id == "3"){
                OutputLog(arg1 + ' broadcasted : ' + arg2);
            }
            if(id == "4"){
                OutputLog('Server streamed : '+arg1);
            }
            if(id == "5"){
                OutputLog('Server test msg : '+arg1);
                testView(arg1);
            }
        }
        socket.onclose = function(){
            OutputLog('Socket Status: '+socket.readyState+' (Closed)');
        }
    } catch(exception){
        OutputLog('Error'+exception);
    }


}


connect();






你可能感兴趣的:(Cocos2d)