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

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



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


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


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


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
























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



/*
test_connect.js

 */


function OutputLog(msg){
    var content = '<p>' + msg + '</p>';
    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网络字符串解析结果:---<br>";
    str += "<span>Total:"+jsonObj.total+ "</span><br><span>Data:</span><br><span>";
    for(var i=0;i<jsonObj.data.length; i++)
        str += "id:"+jsonObj.data[i].id +", name:"+jsonObj.data[i].name+"<br>";
    str += "</span><br>";
    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();






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值