39 lines
		
	
	
		
			910 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			910 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| try {
 | |
|    var autobahn = require('autobahn');
 | |
| } catch (e) {
 | |
|    // when running in browser, AutobahnJS will
 | |
|    // be included without a module system
 | |
| }
 | |
| 
 | |
| var connection = new autobahn.Connection({
 | |
|    url: 'ws://127.0.0.1:8080/ws',
 | |
|    realm: 'crossbardemo'}
 | |
| );
 | |
| 
 | |
| connection.onopen = function (session) {
 | |
| 
 | |
|    function sqrt(args) {
 | |
|       var x = args[0];
 | |
|       if (x === 0) {
 | |
|          throw "don't ask foolish questions;)";
 | |
|       }
 | |
|       var res = Math.sqrt(x);
 | |
|       if (res !== res) {
 | |
|          //throw "cannot take sqrt of negative";
 | |
|          throw new autobahn.Error('com.myapp.error', ['fuck'], {a: 23, b: 9});
 | |
|       }
 | |
|       return res;
 | |
|    }
 | |
| 
 | |
|    session.register('com.myapp.sqrt', sqrt).then(
 | |
|       function (registration) {
 | |
|          console.log("Procedure registered:", registration.id);
 | |
|       },
 | |
|       function (error) {
 | |
|          console.log("Registration failed:", error);
 | |
|       }
 | |
|    );
 | |
| };
 | |
| 
 | |
| connection.open();
 | 
