You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by fa...@apache.org on 2014/09/27 12:13:43 UTC
svn commit: r1627942 [1/4] - in
/qpid/proton/branches/fadams-javascript-binding:
examples/messenger/javascript/ proton-c/bindings/javascript/
tests/javascript/
Author: fadams
Date: Sat Sep 27 10:13:43 2014
New Revision: 1627942
URL: http://svn.apache.org/r1627942
Log:
Improve check for node.js in examples. Add mechanism for clients to increase stack as well as total memory - NB this feature requires emscripten fix only recently applied to incoming so may not be available in SDK yet
Modified:
qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/client.js
qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/drain.js
qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/proxy.js
qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/qpid-config.js
qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/recv.js
qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/send.html
qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/send.js
qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/server.js
qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/spout.js
qpid/proton/branches/fadams-javascript-binding/proton-c/bindings/javascript/README
qpid/proton/branches/fadams-javascript-binding/proton-c/bindings/javascript/messenger.js
qpid/proton/branches/fadams-javascript-binding/proton-c/bindings/javascript/module.js
qpid/proton/branches/fadams-javascript-binding/proton-c/bindings/javascript/subscription.js
qpid/proton/branches/fadams-javascript-binding/tests/javascript/codec.js
qpid/proton/branches/fadams-javascript-binding/tests/javascript/message.js
qpid/proton/branches/fadams-javascript-binding/tests/javascript/soak.js
Modified: qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/client.js
URL: http://svn.apache.org/viewvc/qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/client.js?rev=1627942&r1=1627941&r2=1627942&view=diff
==============================================================================
--- qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/client.js (original)
+++ qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/client.js Sat Sep 27 10:13:43 2014
@@ -22,84 +22,83 @@
// Simple client for use with server.js illustrating request/response
// Check if the environment is Node.js and if not log an error and exit.
-if (!exports) {
- console.error("client.js should be run in Node.js");
- return;
-}
-
-var proton = require("qpid-proton");
+if (typeof process === 'object' && typeof require === 'function') {
+ var proton = require("qpid-proton");
-var address = "amqp://0.0.0.0";
-var subject = "UK.WEATHER";
-var replyTo = "~/replies";
-var msgtext = "Hello World!";
-var tracker = null;
-var running = true;
-
-var message = new proton.Message();
-var messenger = new proton.Messenger();
-
-var pumpData = function() {
- while (messenger.incoming()) {
- var t = messenger.get(message);
-
- console.log("Reply");
- console.log("Address: " + message.getAddress());
- console.log("Subject: " + message.getSubject());
-
- // body is the body as a native JavaScript Object, useful for most real cases.
- //console.log("Content: " + message.body);
-
- // data is the body as a proton.Data Object, used in this case because
- // format() returns exactly the same representation as recv.c
- console.log("Content: " + message.data.format());
+ var address = "amqp://0.0.0.0";
+ var subject = "UK.WEATHER";
+ var replyTo = "~/replies";
+ var msgtext = "Hello World!";
+ var tracker = null;
+ var running = true;
+
+ var message = new proton.Message();
+ var messenger = new proton.Messenger();
+
+ var pumpData = function() {
+ while (messenger.incoming()) {
+ var t = messenger.get(message);
+
+ console.log("Reply");
+ console.log("Address: " + message.getAddress());
+ console.log("Subject: " + message.getSubject());
+
+ // body is the body as a native JavaScript Object, useful for most real cases.
+ //console.log("Content: " + message.body);
+
+ // data is the body as a proton.Data Object, used in this case because
+ // format() returns exactly the same representation as recv.c
+ console.log("Content: " + message.data.format());
- messenger.accept(t);
- messenger.stop();
- }
+ messenger.accept(t);
+ messenger.stop();
+ }
- if (messenger.isStopped()) {
- message.free();
- messenger.free();
- }
-};
+ if (messenger.isStopped()) {
+ message.free();
+ messenger.free();
+ }
+ };
-var args = process.argv.slice(2);
-if (args.length > 0) {
- if (args[0] === '-h' || args[0] === '--help') {
- console.log("Usage: node client.js [-r replyTo] [-s subject] <addr> (default " + address + ")");
- console.log("Options:");
- console.log(" -r <reply to> The message replyTo (default " + replyTo + ")");
- console.log(" -s <subject> The message subject (default " + subject + ")");
- process.exit(0);
- }
+ var args = process.argv.slice(2);
+ if (args.length > 0) {
+ if (args[0] === '-h' || args[0] === '--help') {
+ console.log("Usage: node client.js [-r replyTo] [-s subject] <addr> (default " + address + ")");
+ console.log("Options:");
+ console.log(" -r <reply to> The message replyTo (default " + replyTo + ")");
+ console.log(" -s <subject> The message subject (default " + subject + ")");
+ process.exit(0);
+ }
- for (var i = 0; i < args.length; i++) {
- var arg = args[i];
- if (arg.charAt(0) === '-') {
- i++;
- var val = args[i];
- if (arg === '-r') {
- replyTo = val;
- } else if (arg === '-s') {
- subject = val;
+ for (var i = 0; i < args.length; i++) {
+ var arg = args[i];
+ if (arg.charAt(0) === '-') {
+ i++;
+ var val = args[i];
+ if (arg === '-r') {
+ replyTo = val;
+ } else if (arg === '-s') {
+ subject = val;
+ }
+ } else {
+ address = arg;
}
- } else {
- address = arg;
}
}
-}
-messenger.on('error', function(error) {console.log(error);});
-messenger.on('work', pumpData);
-messenger.setOutgoingWindow(1024);
-messenger.start();
-
-message.setAddress(address);
-message.setSubject(subject);
-message.setReplyTo(replyTo);
-message.body = msgtext;
+ messenger.on('error', function(error) {console.log(error);});
+ messenger.on('work', pumpData);
+ messenger.setOutgoingWindow(1024);
+ messenger.recv(); // Receive as many messages as messenger can buffer.
+ messenger.start();
+
+ message.setAddress(address);
+ message.setSubject(subject);
+ message.setReplyTo(replyTo);
+ message.body = msgtext;
-tracker = messenger.put(message);
-messenger.recv(); // Receive as many messages as messenger can buffer.
+ tracker = messenger.put(message);
+} else {
+ console.error("client.js should be run in Node.js");
+}
Modified: qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/drain.js
URL: http://svn.apache.org/viewvc/qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/drain.js?rev=1627942&r1=1627941&r2=1627942&view=diff
==============================================================================
--- qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/drain.js (original)
+++ qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/drain.js Sat Sep 27 10:13:43 2014
@@ -20,52 +20,51 @@
*/
// Check if the environment is Node.js and if not log an error and exit.
-if (!exports) {
- console.error("drain.js should be run in Node.js");
- return;
-}
-
-var proton = require("qpid-proton");
-
-console.log("drain not implemented yet");
-process.exit(0);
-
-var address = "amqp://~0.0.0.0";
-var message = new proton.Message();
-var messenger = new proton.Messenger();
-
-var pumpData = function() {
- while (messenger.incoming()) {
- var t = messenger.get(message);
+if (typeof process === 'object' && typeof require === 'function') {
+ var proton = require("qpid-proton");
- console.log("Address: " + message.getAddress());
- console.log("Subject: " + message.getSubject());
+ console.log("drain not implemented yet");
+ process.exit(0);
- // body is the body as a native JavaScript Object, useful for most real cases.
- //console.log("Content: " + message.body);
+ var address = "amqp://~0.0.0.0";
+ var message = new proton.Message();
+ var messenger = new proton.Messenger();
+
+ var pumpData = function() {
+ while (messenger.incoming()) {
+ var t = messenger.get(message);
+
+ console.log("Address: " + message.getAddress());
+ console.log("Subject: " + message.getSubject());
+
+ // body is the body as a native JavaScript Object, useful for most real cases.
+ //console.log("Content: " + message.body);
+
+ // data is the body as a proton.Data Object, used in this case because
+ // format() returns exactly the same representation as recv.c
+ console.log("Content: " + message.data.format());
+
+ messenger.accept(t);
+ }
+ };
+
+ var args = process.argv.slice(2);
+ if (args.length > 0) {
+ if (args[0] === '-h' || args[0] === '--help') {
+ console.log("Usage: recv <addr> (default " + address + ").");
+ process.exit(0);
+ }
- // data is the body as a proton.Data Object, used in this case because
- // format() returns exactly the same representation as recv.c
- console.log("Content: " + message.data.format());
-
- messenger.accept(t);
+ address = args[0];
}
-};
-var args = process.argv.slice(2);
-if (args.length > 0) {
- if (args[0] === '-h' || args[0] === '--help') {
- console.log("Usage: recv <addr> (default " + address + ").");
- process.exit(0);
- }
+ messenger.on('error', function(error) {console.log(error);});
+ messenger.on('work', pumpData);
+ messenger.recv(); // Receive as many messages as messenger can buffer.
+ messenger.start();
- address = args[0];
+ messenger.subscribe(address);
+} else {
+ console.error("drain.js should be run in Node.js");
}
-messenger.on('error', function(error) {console.log(error);});
-messenger.on('work', pumpData);
-messenger.start();
-
-messenger.subscribe(address);
-messenger.recv(); // Receive as many messages as messenger can buffer.
-
Modified: qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/proxy.js
URL: http://svn.apache.org/viewvc/qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/proxy.js?rev=1627942&r1=1627941&r2=1627942&view=diff
==============================================================================
--- qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/proxy.js (original)
+++ qpid/proton/branches/fadams-javascript-binding/examples/messenger/javascript/proxy.js Sat Sep 27 10:13:43 2014
@@ -36,71 +36,70 @@
*/
// Check if the environment is Node.js and if not log an error and exit.
-if (!exports) {
- console.error("proxy.js should be run in Node.js");
- return;
-}
-
-var proxy = require('./ws2tcp.js');
+if (typeof process === 'object' && typeof require === 'function') {
+ var proxy = require('./ws2tcp.js');
-var lport = 5673;
-var tport = lport - 1;
-var thost = '0.0.0.0';
-var method = 'ws2tcp';
-
-var args = process.argv.slice(2);
-if (args.length > 0) {
- if (args[0] === '-h' || args[0] === '--help') {
- console.log("Usage: node proxy.js [options]");
- console.log("Options:");
- console.log(" -p <listen port>, --port <listen port> (default " + lport + " for ws2tcp");
- console.log(" " + tport + " for tcp2ws)");
- console.log(" -t <target port>, --tport <target port> (default listen port - 1 for ws2tcp");
- console.log(" listen port + 1 for tcp2ws)");
- console.log(" -h <target host>, --thost <target host> (default " + thost + ")");
- console.log(" -m <ws2tcp or tcp2ws>, --method <ws2tcp or tcp2ws> (default " + method + ")");
- process.exit(0);
- }
+ var lport = 5673;
+ var tport = lport - 1;
+ var thost = '0.0.0.0';
+ var method = 'ws2tcp';
+
+ var args = process.argv.slice(2);
+ if (args.length > 0) {
+ if (args[0] === '-h' || args[0] === '--help') {
+ console.log("Usage: node proxy.js [options]");
+ console.log("Options:");
+ console.log(" -p <listen port>, --port <listen port> (default " + lport + " for ws2tcp");
+ console.log(" " + tport + " for tcp2ws)");
+ console.log(" -t <target port>, --tport <target port> (default listen port - 1 for ws2tcp");
+ console.log(" listen port + 1 for tcp2ws)");
+ console.log(" -h <target host>, --thost <target host> (default " + thost + ")");
+ console.log(" -m <ws2tcp or tcp2ws>, --method <ws2tcp or tcp2ws> (default " + method + ")");
+ process.exit(0);
+ }
- var lportSet = false;
- var tportSet = false;
- for (var i = 0; i < args.length; i++) {
- var arg = args[i];
- if (arg.charAt(0) === '-') {
- i++;
- var val = args[i];
- if (arg === '-p' || arg === '--port') {
- lport = val;
- lportSet = true;
- } else if (arg === '-t' || arg === '--tport') {
- tport = val;
- tportSet = true;
- } else if (arg === '-h' || arg === '--thost') {
- thost = val;
- } else if (arg === '-m' || arg === '--method') {
- method = val;
+ var lportSet = false;
+ var tportSet = false;
+ for (var i = 0; i < args.length; i++) {
+ var arg = args[i];
+ if (arg.charAt(0) === '-') {
+ i++;
+ var val = args[i];
+ if (arg === '-p' || arg === '--port') {
+ lport = val;
+ lportSet = true;
+ } else if (arg === '-t' || arg === '--tport') {
+ tport = val;
+ tportSet = true;
+ } else if (arg === '-h' || arg === '--thost') {
+ thost = val;
+ } else if (arg === '-m' || arg === '--method') {
+ method = val;
+ }
}
}
- }
- if (method === 'tcp2ws' && !lportSet) {
- lport--;
- }
+ if (method === 'tcp2ws' && !lportSet) {
+ lport--;
+ }
- if (!tportSet) {
- tport = (method === 'ws2tcp') ? lport - 1 : +lport + 1;
+ if (!tportSet) {
+ tport = (method === 'ws2tcp') ? lport - 1 : +lport + 1;
+ }
}
-}
-if (method === 'tcp2ws') {
- console.log("Proxying tcp -> ws");
- console.log("Forwarding port " + lport + " to " + thost + ":" + tport);
- proxy.tcp2ws(lport, thost, tport, 'AMQPWSB10');
-} else if (method === 'ws2tcp') {
- console.log("Proxying ws -> tcp");
- console.log("Forwarding port " + lport + " to " + thost + ":" + tport);
- proxy.ws2tcp(lport, thost, tport);
+ if (method === 'tcp2ws') {
+ console.log("Proxying tcp -> ws");
+ console.log("Forwarding port " + lport + " to " + thost + ":" + tport);
+ proxy.tcp2ws(lport, thost, tport, 'AMQPWSB10');
+ } else if (method === 'ws2tcp') {
+ console.log("Proxying ws -> tcp");
+ console.log("Forwarding port " + lport + " to " + thost + ":" + tport);
+ proxy.ws2tcp(lport, thost, tport);
+ } else {
+ console.error("Method must be either ws2tcp or tcp2ws.");
+ }
} else {
- console.error("Method must be either ws2tcp or tcp2ws.");
+ console.error("proxy.js should be run in Node.js");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org