diff options
author | pzread <netfirewall@gmail.com> | 2013-05-12 23:59:58 +0800 |
---|---|---|
committer | pzread <netfirewall@gmail.com> | 2013-05-12 23:59:58 +0800 |
commit | bca5b722a36b941beba9daae96bf46ce97de8d88 (patch) | |
tree | 24fd0fd774305675ca34d5644640d6c4a247cdb2 | |
parent | 6ce43535e4520d64ad165013c71ea43b8591fece (diff) | |
download | taiwan-online-judge-bca5b722a36b941beba9daae96bf46ce97de8d88.tar taiwan-online-judge-bca5b722a36b941beba9daae96bf46ce97de8d88.tar.gz taiwan-online-judge-bca5b722a36b941beba9daae96bf46ce97de8d88.tar.bz2 taiwan-online-judge-bca5b722a36b941beba9daae96bf46ce97de8d88.tar.lz taiwan-online-judge-bca5b722a36b941beba9daae96bf46ce97de8d88.tar.xz taiwan-online-judge-bca5b722a36b941beba9daae96bf46ce97de8d88.tar.zst taiwan-online-judge-bca5b722a36b941beba9daae96bf46ce97de8d88.zip |
Done imc.js local <-> local
-rw-r--r-- | src/test/imc.js | 43 | ||||
-rw-r--r-- | src/test/wstest.html | 6 | ||||
-rw-r--r-- | src/test/wstest.js | 33 |
3 files changed, 69 insertions, 13 deletions
diff --git a/src/test/imc.js b/src/test/imc.js index fb7def8..5d911bf 100644 --- a/src/test/imc.js +++ b/src/test/imc.js @@ -7,25 +7,53 @@ var imc = new function(){ var route_call = function(caller_retid,iden,dst,func_name,param){ var i; + var part; + var dst_linkid; + var dst_path; + var caller_linkid; + + var _retcall_cb = function(data){ + func = caller_retidmap[caller_retid]; + if(func == undefined){ + + }else{ + delete caller_retidmap[caller_retid] + func({'stat':true,'data':data}); + } + }; part = dst.split('/'); - dst_linkid = part[1]; - dst_path = part.slice(2).join('/'); + dst_linkid = part[2]; + dst_path = part.slice(3).join('/'); caller_linkid = iden.linkid if(caller_retid.split('/')[0] != caller_linkid){ return false; } - if(caller_linkid == linkid){ + if(dst_linkid == linkid){ + if(caller_linkid == linkid){ + }else{ + + } + + if((func = call_pathmap[dst_path + func_name]) == undefined){ + } + func(param,_retcall_cb); }else{ } }; that.call = function(iden,dst,func_name,param,callback){ - route_call(1234,iden,dst,func_name,param); + caller_retid = linkid + '/' + caller_retidmap.length; + caller_retidmap[caller_retid] = callback; + route_call(caller_retid,iden,dst,func_name,param); + }; + + that.register_call = function(path,func_name,func){ + call_pathmap[path + func_name] = func; }; imc.proxy.instance = that; @@ -33,6 +61,9 @@ var imc = new function(){ }; -var imc_call = function(iden,dst,func_name,param,callback){ - imc.proxy.instance.call(iden,dst,func_name,param,callback) +function imc_call(iden,dst,func_name,param,callback){ + imc.proxy.instance.call(iden,dst,func_name,param,callback); +}; +function imc_register_call(path,func_name,func){ + imc.proxy.instance.register_call(path,func_name,func); }; diff --git a/src/test/wstest.html b/src/test/wstest.html index 23b0598..ef1b3b2 100644 --- a/src/test/wstest.html +++ b/src/test/wstest.html @@ -8,8 +8,8 @@ <script src="/jquery-2.0.0.min.js"></script> <script src="/bootstrap/js/bootstrap.min.js"></script> -<script src="/imc.js"></script> -<script src="/wstest.js"></script> +<script type="text/javascript" src="/imc.js"></script> +<script type="text/javascript" src="/wstest.js"></script> <script type="text/javascript"> @@ -24,7 +24,7 @@ $(document).ready(function(){ <div class="container" style="padding:32px 0px 32px 0px;"> <div class="row"> <div class="span2 slide"> - <table class="table"> + <table class="table table-hover"> <thead> <tr> <th>Name</th> diff --git a/src/test/wstest.js b/src/test/wstest.js index 81dfc39..7aebb69 100644 --- a/src/test/wstest.js +++ b/src/test/wstest.js @@ -2,12 +2,26 @@ var count = 0; var last = 0; var data = new ArrayBuffer(1024); +var linkid = null; +var iden = null; + function test(){ $.post('http://toj.tfcis.org:83/conn',{},function(res){ var reto; if(res[0] != 'E'){ reto = JSON.parse(res) + linkid = reto.client_linkid; + + new imc.proxy(linkid); + iden = {'linkclass':'client','linkid':linkid}; + + imc_register_call('','test_dst',test_dst); + + imc_call(iden,'/client/test/','test_dst','Hello',function(result){ + console.log(result); + }); + conn(reto.client_linkid,reto.worker_linkid,reto.ip,reto.port); }else{ @@ -15,6 +29,12 @@ function test(){ }); } +function test_dst(param,callback){ + console.log(param); + + callback('Hello Too'); +} + function conn(client_linkid,worker_linkid,ip,port){ console.log(client_linkid); console.log(worker_linkid); @@ -24,7 +44,7 @@ function conn(client_linkid,worker_linkid,ip,port){ var imc_call = function(iden,dst,func_name,param){ call = { 'type':'call', - 'caller_retid':client_linkid + '/' + 'genid_13', + 'caller_retid':client_linkid + '/' + '13', 'timeout':60000, 'iden':iden, 'dst':dst, @@ -40,23 +60,28 @@ function conn(client_linkid,worker_linkid,ip,port){ ws.onopen = function(){ var i; + $('div.main > div.error > div.reconnect').alert('close'); + console.log('open'); ws.send(JSON.stringify({ 'client_linkid':client_linkid })) - imc_call(client_linkid,'/backend/' + worker_linkid,'test_dst','Hello'); + imc_call({'linkclass':'client','linkid':client_linkid},'/center/1' + '/','test_dst',''); }; ws.onmessage = function(e){ reader.onload = function(e){ var res = e.target.result; - //console.log(JSON.parse(res)); + console.log(JSON.parse(res)); - imc_call(client_linkid,'/backend/' + worker_linkid,'test_dst','Hello'); + //imc_call({'linkclass':'client','linkid':client_linkid},'/center/' + worker_linkid + '/','test_dst','Hello'); }; reader.readAsText(e.data); count++; }; + ws.onclose = function(e){ + console.log('close'); + }; perf(); } |