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