Commit 019a2286 authored by 神楽坂玲奈's avatar 神楽坂玲奈

package.json

parent 0a8be1c5
...@@ -7,6 +7,14 @@ os: ...@@ -7,6 +7,14 @@ os:
sudo: required sudo: required
dist: trusty dist: trusty
env:
npm_config_target: 1.2.3
npm_config_arch: x64
npm_config_target_arch: x64
npm_config_disturl: https://atom.io/download/atom-shell
npm_config_runtime: electron
npm_config_build_from_source: true
addons: addons:
apt: apt:
packages: packages:
......
...@@ -23,19 +23,20 @@ ...@@ -23,19 +23,20 @@
<div id="network" *ngIf="appsService.currentApp.network && appsService.currentApp.network.protocol == 'maotama'"> <div id="network" *ngIf="appsService.currentApp.network && appsService.currentApp.network.protocol == 'maotama'">
<div class="input-group"> <div class="input-group">
<input *ngIf="appsService.connections.get(appsService.currentApp)" [value]="appsService.connections.get(appsService.currentApp)" readonly type="text" class="form-control" aria-label="Text input with dropdown button"> <input *ngIf="appsService.connections.get(appsService.currentApp)" [value]="appsService.connections.get(appsService.currentApp).address || 'Loading...'" readonly type="text" class="form-control" aria-label="Text input with dropdown button">
<div class="input-group-btn"> <div class="input-group-btn">
<button *ngIf="!appsService.connections.get(appsService.currentApp)" (click)="appsService.network(appsService.currentApp, appsService.currentApp.network.servers[0])" type="button" class="btn btn-secondary"> <button *ngIf="!appsService.connections.get(appsService.currentApp)" (click)="appsService.network(appsService.currentApp, appsService.currentApp.network.servers[0])" type="button" class="btn btn-secondary">
联机 联机
</button> </button>
<button *ngIf="appsService.connections.get(appsService.currentApp)" (click)="copy(appsService.connections.get(appsService.currentApp))" type="button" class="btn btn-secondary"> <button *ngIf="appsService.connections.get(appsService.currentApp)" (click)="copy(appsService.connections.get(appsService.currentApp).address)" [disabled]="!appsService.connections.get(appsService.currentApp).address" type="button" class="btn btn-secondary">
复制 复制
</button> </button>
<button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="height: 38px;"> data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="height: 38px;">
<span class="sr-only">Toggle Dropdown</span> <span class="sr-only">Toggle Dropdown</span>
</button> </button>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu" [class.dropdown-menu-right]="appsService.connections.get(appsService.currentApp)">
<h6 class="dropdown-header">选择服务器</h6>
<a *ngFor="let server of appsService.currentApp.network.servers" <a *ngFor="let server of appsService.currentApp.network.servers"
(click)="appsService.network(appsService.currentApp, server)" class="dropdown-item" href="#">{{server.id}}</a> (click)="appsService.network(appsService.currentApp, server)" class="dropdown-item" href="#">{{server.id}}</a>
</div> </div>
......
...@@ -522,25 +522,28 @@ export class AppsService { ...@@ -522,25 +522,28 @@ export class AppsService {
electron.remote.shell.showItemInFolder(app.local.path); electron.remote.shell.showItemInFolder(app.local.path);
} }
connections = new Map<App, string>(); connections = new Map<App, {connection: WebSocket, address: string}>();
maotama; maotama;
network(app: App, server) { network(app: App, server) {
if (!this.maotama) { if (!this.maotama) {
this.maotama = sudo.fork('maotama') this.maotama = sudo.fork('maotama')
} }
this.maotama.then((child)=> { this.maotama.then((child)=> {
let connection = this.connections.get(app);
let connection = new WebSocket(server.url); if (connection) {
connection.connection.close();
}
connection = {connection: new WebSocket(server.url), address: null};
let id; let id;
connection.onmessage = (event)=> { this.connections.set(app, connection);
connection.connection.onmessage = (event)=> {
console.log(event.data); console.log(event.data);
let [action, args] = event.data.split(' ', 2); let [action, args] = event.data.split(' ', 2);
let [address, port] = args.split(':'); let [address, port] = args.split(':');
switch (action) { switch (action) {
case 'LISTEN': case 'LISTEN':
this.connections.set(app, args); connection.address = args;
this.ref.tick(); this.ref.tick();
break; break;
case 'CONNECT': case 'CONNECT':
...@@ -553,9 +556,24 @@ export class AppsService { ...@@ -553,9 +556,24 @@ export class AppsService {
break; break;
case 'CONNECTED': case 'CONNECTED':
clearInterval(id); clearInterval(id);
id = null;
break; break;
} }
} };
connection.connection.onclose = (event: CloseEvent)=> {
if (id) {
clearInterval(id);
}
// 如果还是在界面上显示的那个连接
if (this.connections.get(app) == connection) {
this.connections.delete(app);
if (event.code != 1000 && !connection.address) {
alert(`出错了 ${event.code}`);
}
}
// 如果还没建立好就出错了,就弹窗提示这个错误
this.ref.tick();
};
}) })
} }
} }
\ No newline at end of file
version: '{build}' version: '{build}'
platform: platform: x86
- x86
- x64 environment:
npm_config_target: 1.2.3
npm_config_arch: ia32
npm_config_target_arch: ia32
npm_config_disturl: https://atom.io/download/atom-shell
npm_config_runtime: electron
npm_config_build_from_source: true
cache: cache:
- node_modules - node_modules
......
...@@ -3,44 +3,44 @@ ...@@ -3,44 +3,44 @@
"version": "3.0.0-dev.4", "version": "3.0.0-dev.4",
"dependencies": { "dependencies": {
"@angular/common": { "@angular/common": {
"version": "2.1.0", "version": "2.1.2",
"from": "@angular/common@latest", "from": "@angular/common@latest",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-2.1.0.tgz" "resolved": "https://registry.npmjs.org/@angular/common/-/common-2.1.2.tgz"
}, },
"@angular/compiler": { "@angular/compiler": {
"version": "2.1.0", "version": "2.1.2",
"from": "@angular/compiler@latest", "from": "@angular/compiler@latest",
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-2.1.0.tgz" "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-2.1.2.tgz"
}, },
"@angular/core": { "@angular/core": {
"version": "2.1.0", "version": "2.1.2",
"from": "@angular/core@latest", "from": "@angular/core@latest",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-2.1.0.tgz" "resolved": "https://registry.npmjs.org/@angular/core/-/core-2.1.2.tgz"
}, },
"@angular/forms": { "@angular/forms": {
"version": "2.1.0", "version": "2.1.2",
"from": "@angular/forms@latest", "from": "@angular/forms@latest",
"resolved": "https://registry.npmjs.org/@angular/forms/-/forms-2.1.0.tgz" "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-2.1.2.tgz"
}, },
"@angular/http": { "@angular/http": {
"version": "2.1.0", "version": "2.1.2",
"from": "@angular/http@latest", "from": "@angular/http@latest",
"resolved": "https://registry.npmjs.org/@angular/http/-/http-2.1.0.tgz" "resolved": "https://registry.npmjs.org/@angular/http/-/http-2.1.2.tgz"
}, },
"@angular/platform-browser": { "@angular/platform-browser": {
"version": "2.1.0", "version": "2.1.2",
"from": "@angular/platform-browser@latest", "from": "@angular/platform-browser@latest",
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-2.1.0.tgz" "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-2.1.2.tgz"
}, },
"@angular/platform-browser-dynamic": { "@angular/platform-browser-dynamic": {
"version": "2.1.0", "version": "2.1.2",
"from": "@angular/platform-browser-dynamic@latest", "from": "@angular/platform-browser-dynamic@latest",
"resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-2.1.0.tgz" "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-2.1.2.tgz"
}, },
"@angular/router": { "@angular/router": {
"version": "3.1.0", "version": "3.1.2",
"from": "@angular/router@latest", "from": "@angular/router@latest",
"resolved": "https://registry.npmjs.org/@angular/router/-/router-3.1.0.tgz" "resolved": "https://registry.npmjs.org/@angular/router/-/router-3.1.2.tgz"
}, },
"@angular/router-deprecated": { "@angular/router-deprecated": {
"version": "2.0.0-rc.2", "version": "2.0.0-rc.2",
...@@ -48,9 +48,9 @@ ...@@ -48,9 +48,9 @@
"resolved": "https://registry.npmjs.org/@angular/router-deprecated/-/router-deprecated-2.0.0-rc.2.tgz" "resolved": "https://registry.npmjs.org/@angular/router-deprecated/-/router-deprecated-2.0.0-rc.2.tgz"
}, },
"@angular/upgrade": { "@angular/upgrade": {
"version": "2.1.0", "version": "2.1.2",
"from": "@angular/upgrade@latest", "from": "@angular/upgrade@latest",
"resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-2.1.0.tgz" "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-2.1.2.tgz"
}, },
"angular2-in-memory-web-api": { "angular2-in-memory-web-api": {
"version": "0.0.21", "version": "0.0.21",
...@@ -64,13 +64,13 @@ ...@@ -64,13 +64,13 @@
}, },
"bluebird": { "bluebird": {
"version": "3.4.6", "version": "3.4.6",
"from": "bluebird@latest", "from": "bluebird@>=3.4.6 <4.0.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.6.tgz" "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.6.tgz"
}, },
"bootstrap": { "bootstrap": {
"version": "4.0.0-alpha.4", "version": "4.0.0-alpha.5",
"from": "bootstrap@next", "from": "bootstrap@next",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0-alpha.4.tgz" "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0-alpha.5.tgz"
}, },
"commander": { "commander": {
"version": "2.9.0", "version": "2.9.0",
...@@ -82,15 +82,20 @@ ...@@ -82,15 +82,20 @@
"from": "core-js@latest", "from": "core-js@latest",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz" "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz"
}, },
"electron-sudo": {
"version": "4.0.7",
"from": "electron-sudo@latest",
"resolved": "https://registry.npmjs.org/electron-sudo/-/electron-sudo-4.0.7.tgz"
},
"encoding": { "encoding": {
"version": "0.1.12", "version": "0.1.12",
"from": "encoding@>=0.1.11 <0.2.0", "from": "encoding@>=0.1.11 <0.2.0",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz" "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz"
}, },
"font-awesome": { "font-awesome": {
"version": "4.6.3", "version": "4.7.0",
"from": "font-awesome@latest", "from": "font-awesome@latest",
"resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.6.3.tgz" "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz"
}, },
"graceful-readlink": { "graceful-readlink": {
"version": "1.0.1", "version": "1.0.1",
...@@ -102,6 +107,11 @@ ...@@ -102,6 +107,11 @@
"from": "iconv-lite@>=0.4.13 <0.5.0", "from": "iconv-lite@>=0.4.13 <0.5.0",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz"
}, },
"ini": {
"version": "1.3.4",
"from": "ini@latest",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz"
},
"is-stream": { "is-stream": {
"version": "1.1.0", "version": "1.1.0",
"from": "is-stream@>=1.0.1 <2.0.0", "from": "is-stream@>=1.0.1 <2.0.0",
...@@ -112,10 +122,25 @@ ...@@ -112,10 +122,25 @@
"from": "jquery@>=1.9.1 <4.0.0", "from": "jquery@>=1.9.1 <4.0.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz" "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz"
}, },
"minimist": {
"version": "0.0.8",
"from": "minimist@0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
},
"mkdirp": {
"version": "0.5.1",
"from": "mkdirp@latest",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
},
"nan": {
"version": "2.3.5",
"from": "nan@>=2.3.0 <2.4.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.3.5.tgz"
},
"ng2-translate": { "ng2-translate": {
"version": "3.1.2", "version": "3.1.3",
"from": "ng2-translate@latest", "from": "ng2-translate@latest",
"resolved": "https://registry.npmjs.org/ng2-translate/-/ng2-translate-3.1.2.tgz" "resolved": "https://registry.npmjs.org/ng2-translate/-/ng2-translate-3.1.3.tgz"
}, },
"node-fetch": { "node-fetch": {
"version": "1.6.3", "version": "1.6.3",
...@@ -132,11 +157,21 @@ ...@@ -132,11 +157,21 @@
"from": "polygoat@>=1.1.4 <2.0.0", "from": "polygoat@>=1.1.4 <2.0.0",
"resolved": "https://registry.npmjs.org/polygoat/-/polygoat-1.1.4.tgz" "resolved": "https://registry.npmjs.org/polygoat/-/polygoat-1.1.4.tgz"
}, },
"raw-socket": {
"version": "1.5.0",
"from": "raw-socket@latest",
"resolved": "https://registry.npmjs.org/raw-socket/-/raw-socket-1.5.0.tgz"
},
"reflect-metadata": { "reflect-metadata": {
"version": "0.1.8", "version": "0.1.8",
"from": "reflect-metadata@latest", "from": "reflect-metadata@latest",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.8.tgz" "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.8.tgz"
}, },
"regenerator-runtime": {
"version": "0.9.5",
"from": "regenerator-runtime@latest",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz"
},
"rxjs": { "rxjs": {
"version": "5.0.0-beta.12", "version": "5.0.0-beta.12",
"from": "rxjs@5.0.0-beta.12", "from": "rxjs@5.0.0-beta.12",
...@@ -148,9 +183,9 @@ ...@@ -148,9 +183,9 @@
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz" "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz"
}, },
"systemjs": { "systemjs": {
"version": "0.19.39", "version": "0.19.40",
"from": "systemjs@latest", "from": "systemjs@latest",
"resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.39.tgz" "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.40.tgz"
}, },
"tether": { "tether": {
"version": "1.3.7", "version": "1.3.7",
...@@ -173,9 +208,9 @@ ...@@ -173,9 +208,9 @@
"resolved": "https://registry.npmjs.org/ws/-/ws-1.1.1.tgz" "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.1.tgz"
}, },
"zone.js": { "zone.js": {
"version": "0.6.25", "version": "0.6.26",
"from": "zone.js@latest", "from": "zone.js@latest",
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.6.25.tgz" "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.6.26.tgz"
} }
} }
} }
...@@ -9,14 +9,14 @@ ...@@ -9,14 +9,14 @@
'@angular': 'node_modules/@angular', '@angular': 'node_modules/@angular',
'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api', 'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
'rxjs': 'node_modules/rxjs', 'rxjs': 'node_modules/rxjs',
'ng2-translate': 'node_modules/ng2-translate/bundles/ng2-translate.js', 'ng2-translate': 'node_modules/ng2-translate/bundles/index.js',
"os":'' "os": ''
}; };
// packages tells the System loader how to load when no filename and/or no extension // packages tells the System loader how to load when no filename and/or no extension
var packages = { var packages = {
'app': {main: 'main.js', defaultExtension: 'js'}, 'app': {main: 'main.js', defaultExtension: 'js'},
'rxjs': {defaultExtension: 'js'}, 'rxjs': {defaultExtension: 'js'},
'angular2-in-memory-web-api': {main: 'index.js', defaultExtension: 'js'}, 'angular2-in-memory-web-api': {main: 'index.js', defaultExtension: 'js'}
}; };
var ngPackageNames = [ var ngPackageNames = [
'common', 'common',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment