aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpzread <netfirewall@gmail.com>2013-05-12 23:59:58 +0800
committerpzread <netfirewall@gmail.com>2013-05-12 23:59:58 +0800
commitbca5b722a36b941beba9daae96bf46ce97de8d88 (patch)
tree24fd0fd774305675ca34d5644640d6c4a247cdb2
parent6ce43535e4520d64ad165013c71ea43b8591fece (diff)
downloadtaiwan-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.js43
-rw-r--r--src/test/wstest.html6
-rw-r--r--src/test/wstest.js33
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();
}