48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
try {
 | 
						|
   var autobahn = require('autobahn');
 | 
						|
   var when = require('when');
 | 
						|
} catch (e) {
 | 
						|
   // When running in browser, AutobahnJS will
 | 
						|
   // be included without a module system
 | 
						|
   var when = autobahn.when;
 | 
						|
}
 | 
						|
 | 
						|
var connection = new autobahn.Connection({
 | 
						|
   url: 'ws://127.0.0.1:8080/ws',
 | 
						|
   realm: 'realm1'}
 | 
						|
);
 | 
						|
 | 
						|
connection.onopen = function (session) {
 | 
						|
 | 
						|
   function on_event(val) {
 | 
						|
      console.log("Someone requested to square non-positive:", val);
 | 
						|
   }
 | 
						|
 | 
						|
   session.subscribe('com.myapp.square_on_nonpositive', on_event);
 | 
						|
 | 
						|
   var dl = [];
 | 
						|
 | 
						|
   var vals = [2, 0, -2];
 | 
						|
   for (var i = 0; i < vals.length; ++i) {
 | 
						|
 | 
						|
      dl.push(session.call('com.myapp.square', [vals[i]], {}, {disclose_me: true}).then(
 | 
						|
         function (res) {
 | 
						|
            console.log("Squared", res);
 | 
						|
         },
 | 
						|
         function (error) {
 | 
						|
            console.log("Call failed:", error);
 | 
						|
         }
 | 
						|
      ));
 | 
						|
   }
 | 
						|
 | 
						|
   when.all(dl).then(
 | 
						|
      function () {
 | 
						|
         console.log("All finished.");
 | 
						|
      },
 | 
						|
      function () {
 | 
						|
         console.log("Error", arguments);
 | 
						|
      });
 | 
						|
};
 | 
						|
 | 
						|
connection.open();
 |