avs-proxy
Version:
Proxy for avs-rpc
32 lines (26 loc) • 977 B
text/coffeescript
###
@author Gilles Gerlinger
Copyright 2014. All rights reserved.
###
exports.io_client = io_client = require 'socket.io-client'
avsRpc = require 'avs-rpc'
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
connect = (url, cb) ->
socket = io_client url, transports:['websocket', 'polling']
socket.on 'connect_error', (msg) -> cb null, msg
exports.Server = class Server
constructor: (url, service, cb) ->
socket = connect "#{url}/proxy", cb
socket.on 'handshake', (domains, ack_cb) ->
console.log "proxy domains: #{domains}"
if service in domains
console.log err = "error: domain #{service} already registered"
socket.disconnect()
cb null, err
else
ack_cb domain:service
socket.on 'new', (ID) -> cb new avsRpc.ioRpc socket, ID
exports.Client = class Client
constructor: (url, cb) ->
socket = connect url, cb
socket.on 'connect', -> cb new avsRpc.ioRpc socket