UNPKG

1.58 kBtext/coffeescriptView Raw
1SocketIoPkgJson = require('socket.io-client/package.json')
2
3Base = require('../base')
4ClientInfo = require('./client_info')
5NodejsExportsLoader = require('./nodejs_exports_loader')
6
7
8debug = Base.logger('ix-publisher')
9
10publishedExportInfo = null
11
12
13exports.publishAndFindProxy = (ixApiDir) ->
14 NodejsExportsLoader.loadIxExports(ixApiDir)
15 .then (methodInfo) ->
16 exports.publishExportsAndGetProxy(methodInfo)
17
18exports.publishExportsAndGetProxy = (exportInfo) ->
19 debug('sioVer', SocketIoPkgJson.version)
20 publishedExportInfo = exportInfo
21 ClientInfo.clientInfo()
22 .then (clientInfo) ->
23 Base.apiQ
24 url:
25 pathname: '/ix/publishAndProxy'
26 query: { sioVer: SocketIoPkgJson.version }
27 data:
28 exportInfo: exportInfo
29 device:
30 key: clientInfo.deviceKey
31 secret: clientInfo.deviceSecret
32 deviceKey: clientInfo.deviceKey
33 deviceSecret: clientInfo.deviceSecret
34 ec2Zone: clientInfo.ec2Zone
35 method: 'POST'
36
37exports.publishHttpAndFindProxy = ->
38 ClientInfo.clientInfo()
39 .then (clientInfo) ->
40 Base.apiQ
41 url:
42 pathname: '/ix/httpAndProxy'
43 data:
44 device:
45 key: clientInfo.deviceKey
46 secret: clientInfo.deviceSecret
47 deviceKey: clientInfo.deviceKey
48 deviceSecret: clientInfo.deviceSecret
49 ec2Zone: clientInfo.ec2Zone
50 method: 'POST'
51
52exports.getProxyForReconnect = (isHttpProxy) ->
53 # TODO: Refactor.
54 if isHttpProxy
55 exports.publishHttpAndFindProxy()
56 else
57 exports.publishExportsAndGetProxy(publishedExportInfo)