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

package.json

parent 0a8be1c5
......@@ -7,6 +7,14 @@ os:
sudo: required
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:
apt:
packages:
......
......@@ -23,19 +23,20 @@
<div id="network" *ngIf="appsService.currentApp.network && appsService.currentApp.network.protocol == 'maotama'">
<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">
<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 *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 type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="height: 38px;">
<span class="sr-only">Toggle Dropdown</span>
</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"
(click)="appsService.network(appsService.currentApp, server)" class="dropdown-item" href="#">{{server.id}}</a>
</div>
......
......@@ -522,25 +522,28 @@ export class AppsService {
electron.remote.shell.showItemInFolder(app.local.path);
}
connections = new Map<App, string>();
connections = new Map<App, {connection: WebSocket, address: string}>();
maotama;
network(app: App, server) {
if (!this.maotama) {
this.maotama = sudo.fork('maotama')
}
this.maotama.then((child)=> {
let connection = new WebSocket(server.url);
let connection = this.connections.get(app);
if (connection) {
connection.connection.close();
}
connection = {connection: new WebSocket(server.url), address: null};
let id;
connection.onmessage = (event)=> {
this.connections.set(app, connection);
connection.connection.onmessage = (event)=> {
console.log(event.data);
let [action, args] = event.data.split(' ', 2);
let [address, port] = args.split(':');
switch (action) {
case 'LISTEN':
this.connections.set(app, args);
connection.address = args;
this.ref.tick();
break;
case 'CONNECT':
......@@ -553,9 +556,24 @@ export class AppsService {
break;
case 'CONNECTED':
clearInterval(id);
id = null;
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}'
platform:
- x86
- x64
platform: x86
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:
- node_modules
......
......@@ -3,44 +3,44 @@
"version": "3.0.0-dev.4",
"dependencies": {
"@angular/common": {
"version": "2.1.0",
"version": "2.1.2",
"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": {
"version": "2.1.0",
"version": "2.1.2",
"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": {
"version": "2.1.0",
"version": "2.1.2",
"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": {
"version": "2.1.0",
"version": "2.1.2",
"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": {
"version": "2.1.0",
"version": "2.1.2",
"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": {
"version": "2.1.0",
"version": "2.1.2",
"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": {
"version": "2.1.0",
"version": "2.1.2",
"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": {
"version": "3.1.0",
"version": "3.1.2",
"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": {
"version": "2.0.0-rc.2",
......@@ -48,9 +48,9 @@
"resolved": "https://registry.npmjs.org/@angular/router-deprecated/-/router-deprecated-2.0.0-rc.2.tgz"
},
"@angular/upgrade": {
"version": "2.1.0",
"version": "2.1.2",
"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": {
"version": "0.0.21",
......@@ -64,13 +64,13 @@
},
"bluebird": {
"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"
},
"bootstrap": {
"version": "4.0.0-alpha.4",
"version": "4.0.0-alpha.5",
"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": {
"version": "2.9.0",
......@@ -82,15 +82,20 @@
"from": "core-js@latest",
"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": {
"version": "0.1.12",
"from": "encoding@>=0.1.11 <0.2.0",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz"
},
"font-awesome": {
"version": "4.6.3",
"version": "4.7.0",
"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": {
"version": "1.0.1",
......@@ -102,6 +107,11 @@
"from": "iconv-lite@>=0.4.13 <0.5.0",
"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": {
"version": "1.1.0",
"from": "is-stream@>=1.0.1 <2.0.0",
......@@ -112,10 +122,25 @@
"from": "jquery@>=1.9.1 <4.0.0",
"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": {
"version": "3.1.2",
"version": "3.1.3",
"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": {
"version": "1.6.3",
......@@ -132,11 +157,21 @@
"from": "polygoat@>=1.1.4 <2.0.0",
"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": {
"version": "0.1.8",
"from": "reflect-metadata@latest",
"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": {
"version": "5.0.0-beta.12",
"from": "rxjs@5.0.0-beta.12",
......@@ -148,9 +183,9 @@
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz"
},
"systemjs": {
"version": "0.19.39",
"version": "0.19.40",
"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": {
"version": "1.3.7",
......@@ -173,9 +208,9 @@
"resolved": "https://registry.npmjs.org/ws/-/ws-1.1.1.tgz"
},
"zone.js": {
"version": "0.6.25",
"version": "0.6.26",
"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 @@
'@angular': 'node_modules/@angular',
'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
'rxjs': 'node_modules/rxjs',
'ng2-translate': 'node_modules/ng2-translate/bundles/ng2-translate.js',
"os":''
'ng2-translate': 'node_modules/ng2-translate/bundles/index.js',
"os": ''
};
// packages tells the System loader how to load when no filename and/or no extension
var packages = {
'app': {main: 'main.js', 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 = [
'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