avs-proxy
Version:
Proxy for avs-rpc
68 lines (54 loc) • 1.69 kB
JavaScript
// 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);