forked from LeenkxTeam/LNXSDK
58 lines
1.1 KiB
Haxe
58 lines
1.1 KiB
Haxe
|
package kha.netsync;
|
||
|
|
||
|
import haxe.io.Bytes;
|
||
|
#if js
|
||
|
import js.Node;
|
||
|
import js.node.Buffer;
|
||
|
#end
|
||
|
|
||
|
class NodeProcessClient implements Client {
|
||
|
var myId: Int = -1;
|
||
|
var receiveCallback: Bytes->Void = null;
|
||
|
var closeCallback: Void->Void = null;
|
||
|
|
||
|
public function new(id: Int) {
|
||
|
myId = id;
|
||
|
}
|
||
|
|
||
|
public function send(bytes: Bytes, mandatory: Bool): Void {
|
||
|
#if js
|
||
|
var data = bytes.getData();
|
||
|
var buffer = js.Syntax.code("new Buffer(data)");
|
||
|
Node.process.send({data: buffer.toString(), id: myId});
|
||
|
#end
|
||
|
}
|
||
|
|
||
|
public function receive(receiver: Bytes->Void): Void {
|
||
|
receiveCallback = receiver;
|
||
|
}
|
||
|
|
||
|
public function _message(data): Void {
|
||
|
if (receiveCallback != null) {
|
||
|
receiveCallback(Bytes.ofString(data));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function onClose(close: Void->Void): Void {
|
||
|
closeCallback = close;
|
||
|
}
|
||
|
|
||
|
public function _close(): Void {
|
||
|
if (closeCallback != null) {
|
||
|
closeCallback();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public var controllers(get, null): Array<Controller>;
|
||
|
|
||
|
function get_controllers(): Array<Controller> {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
public var id(get, null): Int;
|
||
|
|
||
|
function get_id(): Int {
|
||
|
return myId;
|
||
|
}
|
||
|
}
|