-
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
package ru.m.armageddon.client;
|
package ru.m.armageddon.client;
|
||||||
|
|
||||||
|
import ru.m.armageddon.proto.User;
|
||||||
|
import ru.m.armageddon.proto.LoginResponse;
|
||||||
import protohx.Message;
|
import protohx.Message;
|
||||||
import haxe.crypto.Md5;
|
import haxe.crypto.Md5;
|
||||||
import flash.Lib;
|
import flash.Lib;
|
||||||
@@ -21,6 +23,7 @@ class Client implements IConnectionHandler {
|
|||||||
|
|
||||||
|
|
||||||
private var connection:IConnection;
|
private var connection:IConnection;
|
||||||
|
private var user:User;
|
||||||
|
|
||||||
public function new() {
|
public function new() {
|
||||||
connection = new FlashConnection("localhost", 5000, this);
|
connection = new FlashConnection("localhost", 5000, this);
|
||||||
@@ -31,10 +34,11 @@ class Client implements IConnectionHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function onConnected():Void {
|
public function onConnected():Void {
|
||||||
var request = new LoginRequest();
|
connection.send(
|
||||||
request.login = "shmyga";
|
new LoginRequest()
|
||||||
request.password = Md5.encode("xkbp8jh9z2");
|
.setLogin("shmyga")
|
||||||
connection.send(request);
|
.setPassword(Md5.encode("xkbp8jh9z2"))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onDisconnected():Void {
|
public function onDisconnected():Void {
|
||||||
@@ -45,7 +49,12 @@ class Client implements IConnectionHandler {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onPacket(packet:Message):Void {
|
public function onLoginResponse(packet:LoginResponse):Void {
|
||||||
|
this.user = packet.user;
|
||||||
|
L.d(TAG, "Loginned: " + user.nickname);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onPacket(packet:Message):Void {
|
||||||
|
L.d(TAG, "Unknown packet: " + Type.getClassName(Type.getClass(packet)).split(".").pop());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,16 @@ class BaseConnection implements IConnection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function pushData(bytes:Bytes):Void {}
|
public function pushData(bytes:Bytes):Void {}
|
||||||
|
|
||||||
public function send(packet:Message):Void {}
|
public function send(packet:Message):Void {}
|
||||||
private function receive(packet:Message):Void {}
|
|
||||||
|
private function receive(packet:Message):Void {
|
||||||
|
var name = "on" + Type.getClassName(Type.getClass(packet)).split(".").pop();
|
||||||
|
var method = Reflect.field(handler, name);
|
||||||
|
if (method != null && Reflect.isFunction(method)) {
|
||||||
|
Reflect.callMethod(handler, method, [packet]);
|
||||||
|
} else {
|
||||||
|
handler.onPacket(packet);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package ru.m.armageddon.core.connect.flash;
|
package ru.m.armageddon.core.connect.flash;
|
||||||
|
|
||||||
import ru.m.armageddon.core.connect.IConnection.IConnectionHandler;
|
import ru.m.armageddon.core.connect.IConnection.IConnectionHandler;
|
||||||
import protohx.MessageUtils;
|
|
||||||
import flash.utils.Endian;
|
import flash.utils.Endian;
|
||||||
import haxe.io.BytesOutput;
|
import haxe.io.BytesOutput;
|
||||||
import protohx.Message;
|
import protohx.Message;
|
||||||
@@ -12,8 +11,6 @@ import flash.events.Event;
|
|||||||
import flash.events.SecurityErrorEvent;
|
import flash.events.SecurityErrorEvent;
|
||||||
import flash.events.IOErrorEvent;
|
import flash.events.IOErrorEvent;
|
||||||
import flash.net.Socket;
|
import flash.net.Socket;
|
||||||
import ru.m.armageddon.proto.LoginRequest;
|
|
||||||
import ru.m.armageddon.proto.LoginResponse;
|
|
||||||
|
|
||||||
class FlashConnection extends BaseConnection {
|
class FlashConnection extends BaseConnection {
|
||||||
|
|
||||||
@@ -56,7 +53,6 @@ class FlashConnection extends BaseConnection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override public function send(packet:Message):Void {
|
override public function send(packet:Message):Void {
|
||||||
L.d("Send", MessageUtils.toJson(packet));
|
|
||||||
var meta = builder.packetMeta(packet);
|
var meta = builder.packetMeta(packet);
|
||||||
socket.writeByte(meta.family);
|
socket.writeByte(meta.family);
|
||||||
socket.writeByte(meta.id);
|
socket.writeByte(meta.id);
|
||||||
@@ -67,11 +63,4 @@ class FlashConnection extends BaseConnection {
|
|||||||
socket.writeBytes(cast bytes.getData());
|
socket.writeBytes(cast bytes.getData());
|
||||||
socket.flush();
|
socket.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
override private function receive(packet:Message):Void {
|
|
||||||
L.d("Receive", MessageUtils.toJson(packet));
|
|
||||||
var name = Type.getClassName(Type.getClass(packet)).split(".").pop();
|
|
||||||
L.d("xxx", name);
|
|
||||||
handler.onPacket(packet);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package ru.m.armageddon.core.connect.neko;
|
package ru.m.armageddon.core.connect.neko;
|
||||||
|
|
||||||
import haxe.io.BytesOutput;
|
import haxe.io.BytesOutput;
|
||||||
import protohx.MessageUtils;
|
|
||||||
import protohx.Message;
|
import protohx.Message;
|
||||||
import haxe.io.Bytes;
|
import haxe.io.Bytes;
|
||||||
import sys.net.Socket;
|
import sys.net.Socket;
|
||||||
@@ -35,7 +34,6 @@ class NekoConnection extends BaseConnection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override public function send(packet:Message):Void {
|
override public function send(packet:Message):Void {
|
||||||
trace("Send: " + MessageUtils.toJson(packet));
|
|
||||||
try {
|
try {
|
||||||
var meta = builder.packetMeta(packet);
|
var meta = builder.packetMeta(packet);
|
||||||
var b = new BytesOutput();
|
var b = new BytesOutput();
|
||||||
@@ -50,11 +48,4 @@ class NekoConnection extends BaseConnection {
|
|||||||
trace(e);
|
trace(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override private function receive(packet:Message):Void {
|
|
||||||
trace("Receive", MessageUtils.toJson(packet));
|
|
||||||
var name = Type.getClassName(Type.getClass(packet)).split(".").pop();
|
|
||||||
trace("xxx", name);
|
|
||||||
handler.onPacket(packet);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -35,26 +35,26 @@ class Session implements IConnectionHandler {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onPacket(packet:Message):Void {
|
public function onLoginRequest(packet:LoginRequest):Void {
|
||||||
if (Std.is(packet, LoginRequest)) {
|
var db = new Db();
|
||||||
var request = cast(packet, LoginRequest);
|
var userData = db.getUser(packet.login, packet.password);
|
||||||
|
if (userData != null) {
|
||||||
var db = new Db();
|
var user = new User();
|
||||||
var userData = db.getUser(request.login, request.password);
|
user.login = userData.login;
|
||||||
if (userData != null) {
|
user.nickname = userData.login;
|
||||||
var user = new User();
|
this.user = user;
|
||||||
user.login = userData.login;
|
var response = new LoginResponse();
|
||||||
user.nickname = userData.login;
|
response.user = user;
|
||||||
this.user = user;
|
connection.send(response);
|
||||||
var response = new LoginResponse();
|
} else {
|
||||||
response.user = user;
|
var response = new ErrorResponse();
|
||||||
connection.send(response);
|
response.code = 403;
|
||||||
} else {
|
response.message = "User not found";
|
||||||
var response = new ErrorResponse();
|
connection.send(response);
|
||||||
response.code = 403;
|
|
||||||
response.message = "User not found";
|
|
||||||
connection.send(response);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function onPacket(packet:Message):Void {
|
||||||
|
trace("Unknown packet: " + Type.getClassName(Type.getClass(packet)).split(".").pop());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user