[app] add Network
This commit is contained in:
@@ -46,6 +46,9 @@ const config = new Project.Config({
|
|||||||
macros: [
|
macros: [
|
||||||
`CompilationOption.set('build','${dateformat(new Date(), 'yyyy-mm-dd HH:MM:ss')}')`,
|
`CompilationOption.set('build','${dateformat(new Date(), 'yyyy-mm-dd HH:MM:ss')}')`,
|
||||||
],
|
],
|
||||||
|
flags: [
|
||||||
|
//'proto_debug',
|
||||||
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
const app = new Project(
|
const app = new Project(
|
||||||
|
|||||||
112
package-lock.json
generated
112
package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "puzzlez",
|
"name": "puzzlez",
|
||||||
"version": "0.1.0",
|
"version": "0.4.4",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -124,9 +124,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "3.5.0",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||||
"integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
|
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
@@ -471,18 +471,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"bl": {
|
"bl": {
|
||||||
"version": "3.0.0",
|
"version": "4.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz",
|
||||||
"integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==",
|
"integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"readable-stream": "^3.0.1"
|
"buffer": "^5.5.0",
|
||||||
|
"inherits": "^2.0.4",
|
||||||
|
"readable-stream": "^3.4.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "3.5.0",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||||
"integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
|
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
@@ -595,9 +597,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"buffer": {
|
"buffer": {
|
||||||
"version": "5.4.3",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz",
|
||||||
"integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==",
|
"integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"base64-js": "^1.0.2",
|
"base64-js": "^1.0.2",
|
||||||
@@ -785,9 +787,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chownr": {
|
"chownr": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
||||||
"integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
|
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"class-utils": {
|
"class-utils": {
|
||||||
@@ -814,9 +816,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cli-progress": {
|
"cli-progress": {
|
||||||
"version": "3.5.0",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.6.0.tgz",
|
||||||
"integrity": "sha512-S1wR4xfcfLWbVBH6RwYat1nMCm2UsuygxNoiRYVAXQsuWKjCRgWRZVohXLmsWfiuAK0FFf7t9OyZ2JBmDWaQGA==",
|
"integrity": "sha512-elg6jkiDedYrvwqWSae2FGvtbMo37Lo04oI9jJ5cI43Ge3jrDPWzeL3axv7MgBLYHDY/kGio/CXa49m4MWMrNw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"colors": "^1.1.2",
|
"colors": "^1.1.2",
|
||||||
@@ -1078,9 +1080,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "3.5.0",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||||
"integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
|
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
@@ -1180,9 +1182,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"defer-to-connect": {
|
"defer-to-connect": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
|
||||||
"integrity": "sha512-J7thop4u3mRTkYRQ+Vpfwy2G5Ehoy82I14+14W4YMDLKdWloI9gSzRbV30s/NckQGVJtPkWNcW4oMAUigTdqiQ==",
|
"integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"define-properties": {
|
"define-properties": {
|
||||||
@@ -2771,9 +2773,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"object-assign": {
|
"object-assign": {
|
||||||
@@ -2836,9 +2838,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gulp-haxetool": {
|
"gulp-haxetool": {
|
||||||
"version": "0.1.4",
|
"version": "0.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/gulp-haxetool/-/gulp-haxetool-0.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/gulp-haxetool/-/gulp-haxetool-0.1.7.tgz",
|
||||||
"integrity": "sha512-/GAw7E6wwaB4jI+o7HqM0/TXJhbW5BqzuktJpUZJukfKn60n9tx3fpem/jABe4tYmNNRrt716hnbcRFXJKKjfQ==",
|
"integrity": "sha512-V9/0oToVWZONzmzrONfMo1V2vXBT+TdCaGm1uZyiX4j9jDEvD7awJ8T7mJhWywm2z2CLsZUKiOMWXpP1//eT8Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-colors": "^1.1.0",
|
"ansi-colors": "^1.1.0",
|
||||||
@@ -3276,9 +3278,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"http-cache-semantics": {
|
"http-cache-semantics": {
|
||||||
"version": "4.0.3",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
|
||||||
"integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==",
|
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"http-errors": {
|
"http-errors": {
|
||||||
@@ -4179,18 +4181,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mkdirp": {
|
"mkdirp": {
|
||||||
"version": "0.5.1",
|
"version": "0.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz",
|
||||||
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
"integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimist": "0.0.8"
|
"minimist": "^1.2.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "0.0.8",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||||
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
|
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4627,9 +4629,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "3.5.0",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||||
"integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
|
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
@@ -5462,12 +5464,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tar-stream": {
|
"tar-stream": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
|
||||||
"integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==",
|
"integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"bl": "^3.0.0",
|
"bl": "^4.0.1",
|
||||||
"end-of-stream": "^1.4.1",
|
"end-of-stream": "^1.4.1",
|
||||||
"fs-constants": "^1.0.0",
|
"fs-constants": "^1.0.0",
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
@@ -5475,9 +5477,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "3.5.0",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||||
"integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
|
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
@@ -6164,9 +6166,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "3.5.0",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||||
"integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
|
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
package ru.m.puzzlez;
|
package ru.m.puzzlez;
|
||||||
|
|
||||||
import hw.connect.ConnectionFactory;
|
|
||||||
import ru.m.puzzlez.proto.pack.Request;
|
|
||||||
import ru.m.puzzlez.proto.pack.Response;
|
|
||||||
import hw.connect.IConnection;
|
|
||||||
import hw.log.TraceLogger;
|
|
||||||
import hw.app.App;
|
import hw.app.App;
|
||||||
import hw.app.Const;
|
import hw.app.Const;
|
||||||
|
import hw.log.TraceLogger;
|
||||||
import ru.m.puzzlez.storage.GameStorage;
|
import ru.m.puzzlez.storage.GameStorage;
|
||||||
import ru.m.puzzlez.storage.ImageStorage;
|
import ru.m.puzzlez.storage.ImageStorage;
|
||||||
import ru.m.puzzlez.storage.SettingsStorage;
|
import ru.m.puzzlez.storage.SettingsStorage;
|
||||||
@@ -16,7 +12,6 @@ import ru.m.update.Updater;
|
|||||||
class PuzzlezApp {
|
class PuzzlezApp {
|
||||||
|
|
||||||
@:provide static var updater:Updater;
|
@:provide static var updater:Updater;
|
||||||
@:provide static var connection:IConnection<Response, Request>;
|
|
||||||
|
|
||||||
public static function main() {
|
public static function main() {
|
||||||
// ToDo: fix @:provide macro
|
// ToDo: fix @:provide macro
|
||||||
@@ -24,8 +19,6 @@ class PuzzlezApp {
|
|||||||
ImageStorage;
|
ImageStorage;
|
||||||
SettingsStorage;
|
SettingsStorage;
|
||||||
L.push(new TraceLogger());
|
L.push(new TraceLogger());
|
||||||
connection = ConnectionFactory.buildClientConnection("127.0.0.1", 6000, Request);
|
|
||||||
connection.connect().then(_ -> L.i("connect", "success")).catchError(error -> L.e("connect", "", error));
|
|
||||||
updater = new Updater(Const.instance.VERSION, "https://shmyga.ru/repo/puzzlez/packages.json");
|
updater = new Updater(Const.instance.VERSION, "https://shmyga.ru/repo/puzzlez/packages.json");
|
||||||
var app = new App();
|
var app = new App();
|
||||||
app.theme = new PuzzlezTheme();
|
app.theme = new PuzzlezTheme();
|
||||||
|
|||||||
60
src/app/haxe/ru/m/puzzlez/net/Network.hx
Normal file
60
src/app/haxe/ru/m/puzzlez/net/Network.hx
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
package ru.m.puzzlez.net;
|
||||||
|
|
||||||
|
import com.hurlant.crypto.extra.UUID;
|
||||||
|
import com.hurlant.crypto.prng.Random;
|
||||||
|
import hw.connect.ConnectionFactory;
|
||||||
|
import hw.connect.IConnection;
|
||||||
|
import hw.signal.Signal;
|
||||||
|
import hw.storage.SharedObjectStorage;
|
||||||
|
import ru.m.puzzlez.proto.core.UserProto;
|
||||||
|
import ru.m.puzzlez.proto.pack.LoginRequest;
|
||||||
|
import ru.m.puzzlez.proto.pack.Request;
|
||||||
|
import ru.m.puzzlez.proto.pack.Response;
|
||||||
|
|
||||||
|
@:provide class Network {
|
||||||
|
public var user(default, null):UserProto;
|
||||||
|
public var userSignal(default, null):Signal<UserProto> = new Signal();
|
||||||
|
|
||||||
|
private var connection:IConnection<Request, Response>;
|
||||||
|
private var storage:SharedObjectStorage;
|
||||||
|
|
||||||
|
private static var USER_KEY = "user";
|
||||||
|
|
||||||
|
public function new() {
|
||||||
|
storage = new SharedObjectStorage("netwok");
|
||||||
|
if (storage.exists(USER_KEY)) {
|
||||||
|
user = storage.read(USER_KEY);
|
||||||
|
} else {
|
||||||
|
user = new UserProto().setName('Anonimus #${UUID.generateRandom(new Random()).toString().split("-").shift()}');
|
||||||
|
storage.write(USER_KEY, user);
|
||||||
|
}
|
||||||
|
connection = ConnectionFactory.buildClientConnection("127.0.0.1", 6000, Response);
|
||||||
|
connection.handler.connect(onConnectionChange);
|
||||||
|
connection.receiveHandler.connect(onReceivePacket);
|
||||||
|
connection.connect();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function login():Void {
|
||||||
|
connection.send(new Request().setLogin(new LoginRequest().setName(user.name).setUuid(user.uuid)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private function onConnectionChange(event:ConnectionEvent):Void {
|
||||||
|
L.i("network", '${event}');
|
||||||
|
switch event {
|
||||||
|
case CONNECTED:
|
||||||
|
login();
|
||||||
|
case DISCONNECTED:
|
||||||
|
//
|
||||||
|
case ERROR(error):
|
||||||
|
// ToDo: reconnect
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function onReceivePacket(packet:Response):Void {
|
||||||
|
if (packet.hasLogin()) {
|
||||||
|
user = packet.login.user;
|
||||||
|
storage.write(USER_KEY, user);
|
||||||
|
userSignal.emit(user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,17 +2,21 @@ package ru.m.puzzlez.view;
|
|||||||
|
|
||||||
import flash.events.KeyboardEvent;
|
import flash.events.KeyboardEvent;
|
||||||
import flash.ui.Keyboard;
|
import flash.ui.Keyboard;
|
||||||
|
import hw.app.App;
|
||||||
import hw.view.form.ButtonView;
|
import hw.view.form.ButtonView;
|
||||||
|
import hw.view.form.LabelView;
|
||||||
import hw.view.frame.FrameSwitcher;
|
import hw.view.frame.FrameSwitcher;
|
||||||
import hw.view.group.VGroupView;
|
import hw.view.group.VGroupView;
|
||||||
import hw.app.App;
|
import ru.m.puzzlez.net.Network;
|
||||||
|
|
||||||
@:template class PuzzlezAppView extends VGroupView {
|
@:template class PuzzlezAppView extends VGroupView {
|
||||||
|
|
||||||
@:view("switcher") var switcherView:FrameSwitcher;
|
@:view("switcher") var switcherView:FrameSwitcher;
|
||||||
@:view("fullscreen") var fullscreenButton:ButtonView;
|
@:view("fullscreen") var fullscreenButton:ButtonView;
|
||||||
|
@:view("user") var userLabel:LabelView;
|
||||||
|
|
||||||
@:provide static var switcher:FrameSwitcher;
|
@:provide static var switcher:FrameSwitcher;
|
||||||
|
@:provide static var network:Network;
|
||||||
@:provide static var app:App;
|
@:provide static var app:App;
|
||||||
|
|
||||||
public function new() {
|
public function new() {
|
||||||
@@ -30,5 +34,6 @@ import hw.app.App;
|
|||||||
case _:
|
case _:
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
network.userSignal.connect(user -> userLabel.text = user.name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,12 +9,17 @@ views:
|
|||||||
_image_list_: {$class: ru.m.puzzlez.view.ImageListFrame}
|
_image_list_: {$class: ru.m.puzzlez.view.ImageListFrame}
|
||||||
_preset_: {$class: ru.m.puzzlez.view.PresetFrame}
|
_preset_: {$class: ru.m.puzzlez.view.PresetFrame}
|
||||||
_game_: {$class: ru.m.puzzlez.view.GameFrame}
|
_game_: {$class: ru.m.puzzlez.view.GameFrame}
|
||||||
- id: fullscreen
|
- $type: hw.view.group.HGroupView
|
||||||
$type: hw.view.form.ButtonView
|
|
||||||
geometry.position: absolute
|
geometry.position: absolute
|
||||||
geometry.hAlign: right
|
geometry.hAlign: right
|
||||||
geometry.vAlign: bottom
|
geometry.vAlign: bottom
|
||||||
geometry.margin: 10
|
geometry.margin: 10
|
||||||
style: icon.expand
|
layout.vAlign: middle
|
||||||
+onPress: ~_ -> app.fullScreen = !app.fullScreen
|
views:
|
||||||
visible: false
|
- id: user
|
||||||
|
$type: hw.view.form.LabelView
|
||||||
|
- id: fullscreen
|
||||||
|
$type: hw.view.form.ButtonView
|
||||||
|
style: icon.expand
|
||||||
|
+onPress: ~_ -> app.fullScreen = !app.fullScreen
|
||||||
|
visible: false
|
||||||
|
|||||||
@@ -24,16 +24,16 @@ class PuzzlezServer extends ThreadServer<GameSession, Message> {
|
|||||||
|
|
||||||
override public function clientDisconnected(session:GameSession) {
|
override public function clientDisconnected(session:GameSession) {
|
||||||
L.d(TAG, 'Client disconnected');
|
L.d(TAG, 'Client disconnected');
|
||||||
//session.disconnect();
|
session.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
override public function readClientMessage(session:GameSession, buf:Bytes, pos:Int, len:Int): ClientMessage<Message> {
|
override public function readClientMessage(session:GameSession, buf:Bytes, pos:Int, len:Int): ClientMessage<Message> {
|
||||||
//L.d(TAG, 'Client message: ${buf}');
|
L.d(TAG, 'Client message: ${buf}');
|
||||||
return {msg: buf.sub(pos, len), bytes: len};
|
return {msg: buf.sub(pos, len), bytes: len};
|
||||||
}
|
}
|
||||||
|
|
||||||
override public function clientMessage(session:GameSession, message:Message) {
|
override public function clientMessage(session:GameSession, message:Message) {
|
||||||
//session.pushData(bytes);
|
session.pushData(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function main():Void {
|
public static function main():Void {
|
||||||
|
|||||||
Reference in New Issue
Block a user