Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
N
node-bigstream
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
3
Merge Requests
3
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bs
node-bigstream
Commits
169bf505
Commit
169bf505
authored
Dec 28, 2016
by
project
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
--no commit message
--no commit message
parent
6d8b509d
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
95 additions
and
37 deletions
+95
-37
amqp.json
conf/amqp.json
+2
-1
rpccaller.js
lib/amqp/rpccaller.js
+39
-0
binarystream.js
lib/bss/binarystream.js
+0
-0
binarystream_v1_0.js
lib/bss/binarystream_v1_0.js
+0
-0
file-access-buffer.js
lib/bss/file-access-buffer.js
+0
-0
oat.js
lib/bss/oat.js
+0
-0
objectdata.js
lib/bss/objectdata.js
+0
-0
objid.js
lib/bss/objid.js
+0
-0
reader.js
lib/bss/reader.js
+0
-0
root.js
lib/bss/root.js
+0
-0
writer.js
lib/bss/writer.js
+0
-0
test_rpccli.js
test/test_rpccli.js
+52
-34
test_rpsserv.js
test/test_rpsserv.js
+2
-2
No files found.
conf/amqp.json
View file @
169bf505
{
"url"
:
"amqp://test:test@lab1.igridproject.info"
"type"
:
"rabbitmq"
,
"url"
:
"amqp://bigmaster.igridproject.info"
}
lib/amqp/rpccaller.js
0 → 100644
View file @
169bf505
var
amqp
=
require
(
'amqplib/callback_api'
);
function
RPCCaller
(
config
)
{
this
.
config
=
config
;
this
.
url
=
config
.
url
;
this
.
name
=
config
.
name
||
"rpc_queue"
;
}
RPCCaller
.
prototype
.
call
=
function
(
req
,
cb
){
var
self
=
this
;
amqp
.
connect
(
self
.
url
,
function
(
err
,
conn
)
{
conn
.
createChannel
(
function
(
err
,
ch
)
{
ch
.
assertQueue
(
''
,
{
exclusive
:
true
},
function
(
err
,
q
)
{
var
corr
=
generateUuid
();
ch
.
consume
(
q
.
queue
,
function
(
msg
)
{
if
(
msg
.
properties
.
correlationId
==
corr
)
{
var
resp
=
JSON
.
parse
(
msg
.
content
.
toString
());
conn
.
close
();
cb
(
null
,
resp
);
}
},
{
noAck
:
true
});
ch
.
sendToQueue
(
self
.
name
,
new
Buffer
(
JSON
.
stringify
(
req
)),
{
correlationId
:
corr
,
replyTo
:
q
.
queue
});
});
});
});
function
generateUuid
()
{
return
Math
.
random
().
toString
()
+
Math
.
random
().
toString
()
+
Math
.
random
().
toString
();
}
}
module
.
exports
=
RPCCaller
;
lib/
storage
/binarystream.js
→
lib/
bss
/binarystream.js
View file @
169bf505
File moved
lib/
storage
/binarystream_v1_0.js
→
lib/
bss
/binarystream_v1_0.js
View file @
169bf505
File moved
lib/
storage
/file-access-buffer.js
→
lib/
bss
/file-access-buffer.js
View file @
169bf505
File moved
lib/
storage
/oat.js
→
lib/
bss
/oat.js
View file @
169bf505
File moved
lib/
storage
/objectdata.js
→
lib/
bss
/objectdata.js
View file @
169bf505
File moved
lib/
storage
/objid.js
→
lib/
bss
/objid.js
View file @
169bf505
File moved
lib/
storage
/reader.js
→
lib/
bss
/reader.js
View file @
169bf505
File moved
lib/
storage
/root.js
→
lib/
bss
/root.js
View file @
169bf505
File moved
lib/
storage
/writer.js
→
lib/
bss
/writer.js
View file @
169bf505
File moved
test/test_rpccli.js
View file @
169bf505
var
amqp
=
require
(
'amqplib/callback_api'
);
var
args
=
process
.
argv
.
slice
(
2
);
if
(
args
.
length
==
0
)
{
console
.
log
(
"Usage: rpc_client.js num"
);
process
.
exit
(
1
);
}
amqp
.
connect
(
'amqp://bigmaster.igridproject.info'
,
function
(
err
,
conn
)
{
conn
.
createChannel
(
function
(
err
,
ch
)
{
ch
.
assertQueue
(
''
,
{
exclusive
:
true
},
function
(
err
,
q
)
{
var
corr
=
generateUuid
();
var
num
=
parseInt
(
args
[
0
]);
console
.
log
(
' [x] Requesting fib(%d)'
,
num
);
ch
.
consume
(
q
.
queue
,
function
(
msg
)
{
if
(
msg
.
properties
.
correlationId
==
corr
)
{
console
.
log
(
' [.] Got %s'
,
msg
.
content
.
toString
());
setTimeout
(
function
()
{
conn
.
close
();
process
.
exit
(
0
)
},
500
);
}
},
{
noAck
:
true
});
ch
.
sendToQueue
(
'rpc_queue'
,
new
Buffer
(
num
.
toString
()),
{
correlationId
:
corr
,
replyTo
:
q
.
queue
});
});
});
var
ctx
=
require
(
'../context'
);
var
amqp_cfg
=
ctx
.
config
.
amqp
;
var
RPCCaller
=
ctx
.
getLib
(
'lib/amqp/rpccaller'
);
var
caller
=
new
RPCCaller
({
url
:
amqp_cfg
.
url
});
caller
.
call
({
t
:
10000
,
d
:
'hello'
},
function
(
err
,
resp
){
console
.
log
(
resp
);
});
function
generateUuid
()
{
return
Math
.
random
().
toString
()
+
Math
.
random
().
toString
()
+
Math
.
random
().
toString
();
}
// var amqp = require('amqplib/callback_api');
//
// var args = process.argv.slice(2);
//
// if (args.length == 0) {
// console.log("Usage: rpc_client.js num");
// process.exit(1);
// }
//
// amqp.connect('amqp://bigmaster.igridproject.info', function(err, conn) {
// conn.createChannel(function(err, ch) {
// ch.assertQueue('', {exclusive: true}, function(err, q) {
// var corr = generateUuid();
// var num = parseInt(args[0]);
//
// console.log(' [x] Requesting fib(%d)', num);
//
// ch.consume(q.queue, function(msg) {
// if (msg.properties.correlationId == corr) {
// console.log(' [.] Got %s', msg.content.toString());
// setTimeout(function() { conn.close(); process.exit(0) }, 500);
// }
// }, {noAck: true});
//
// ch.sendToQueue('rpc_queue',
// new Buffer(num.toString()),
// { correlationId: corr, replyTo: q.queue });
// });
// });
// });
//
// function generateUuid() {
// return Math.random().toString() +
// Math.random().toString() +
// Math.random().toString();
// }
test/test_rpsserv.js
View file @
169bf505
...
...
@@ -8,10 +8,10 @@ var server = new rpcserver({
});
server
.
set_remote_function
(
function
(
req
,
callback
){
var
n
=
parseInt
(
req
);
var
n
=
parseInt
(
req
.
t
);
console
.
log
(
'REQUEST '
+
req
);
setTimeout
(
function
(){
callback
(
null
,
n
);
callback
(
null
,
{
'time'
:
n
,
'data'
:
req
.
d
}
);
},
n
);
})
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment