[server] update proto

This commit is contained in:
2018-02-28 22:25:29 +03:00
parent 34e5ac2b9e
commit 634f5ad2d0
7 changed files with 238 additions and 272 deletions

View File

@@ -2,37 +2,33 @@ package ru.m.connect.neko;
import haxe.io.BytesOutput;
import protohx.Message;
import haxe.io.Bytes;
import sys.net.Socket;
import ru.m.connect.IConnection;
class NekoConnection extends BaseConnection {
public var socket(default, null):Socket;
class NekoConnection<O:Message, I:Message> extends BaseConnection<O, I> {
public function new(socket:Socket) {
super();
this.socket = socket;
socket.setFastSend(true);
socket.output.bigEndian = false;
socket.input.bigEndian = false;
}
public var socket(default, null):Socket;
override public function send(packet:Message):Void {
super.send(packet);
try {
var meta = builder.packetMeta(packet);
var b = new BytesOutput();
packet.writeTo(b);
var bytes = b.getBytes();
socket.output.writeByte(meta.family);
socket.output.writeByte(meta.id);
socket.output.writeUInt16(bytes.length);
socket.output.write(bytes);
socket.output.flush();
} catch (e:Dynamic) {
trace("Error send packet: " + Type.getClassName(Type.getClass(packet)));
trace(e);
public function new(socket:Socket, i:Class<I>) {
super(i);
this.socket = socket;
socket.setFastSend(true);
socket.output.bigEndian = false;
socket.input.bigEndian = false;
}
override public function send(packet:O):Void {
super.send(packet);
try {
var b = new BytesOutput();
packet.writeTo(b);
var bytes = b.getBytes();
socket.output.writeUInt16(bytes.length);
socket.output.write(bytes);
socket.output.flush();
} catch (e:Dynamic) {
trace("Error send packet: " + Type.getClassName(Type.getClass(packet)));
trace(e);
}
}
}
}