UNPKG

avs-proxy

Version:

Proxy for avs-rpc

68 lines (54 loc) 1.69 kB
// Generated by CoffeeScript 1.8.0 /* @author Gilles Gerlinger Copyright 2014. All rights reserved. */ (function() { var Client, Server, avsRpc, connect, io_client, __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; exports.io_client = io_client = require('socket.io-client'); avsRpc = require('avs-rpc'); process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; connect = function(url, cb) { var socket; socket = io_client(url, { transports: ['websocket', 'polling'] }); return socket.on('connect_error', function(msg) { return cb(null, msg); }); }; exports.Server = Server = (function() { function Server(url, service, cb) { var socket; socket = connect("" + url + "/proxy", cb); socket.on('handshake', function(domains, ack_cb) { var err; console.log("proxy domains: " + domains); if (__indexOf.call(domains, service) >= 0) { console.log(err = "error: domain " + service + " already registered"); socket.disconnect(); return cb(null, err); } else { ack_cb({ domain: service }); return socket.on('new', function(ID) { return cb(new avsRpc.ioRpc(socket, ID)); }); } }); } return Server; })(); exports.Client = Client = (function() { function Client(url, cb) { var socket; socket = connect(url, cb); socket.on('connect', function() { return cb(new avsRpc.ioRpc(socket)); }); } return Client; })(); }).call(this);