1 | SocketIoPkgJson = require('socket.io-client/package.json')
|
2 |
|
3 | Base = require('../base')
|
4 | ClientInfo = require('./client_info')
|
5 | NodejsExportsLoader = require('./nodejs_exports_loader')
|
6 |
|
7 |
|
8 | debug = Base.logger('ix-publisher')
|
9 |
|
10 | publishedExportInfo = null
|
11 |
|
12 |
|
13 | exports.publishAndFindProxy = (ixApiDir) ->
|
14 | NodejsExportsLoader.loadIxExports(ixApiDir)
|
15 | .then (methodInfo) ->
|
16 | exports.publishExportsAndGetProxy(methodInfo)
|
17 |
|
18 | exports.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 |
|
37 | exports.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 |
|
52 | exports.getProxyForReconnect = (isHttpProxy) ->
|
53 |
|
54 | if isHttpProxy
|
55 | exports.publishHttpAndFindProxy()
|
56 | else
|
57 | exports.publishExportsAndGetProxy(publishedExportInfo)
|