Skip to content
Alexander Gordeyko edited this page Oct 3, 2021 · 3 revisions

Remote Procedure Call

Using -lib hxbitmini

Remote methods call

class MessageProtocol extends pony.net.RPC<MessageProtocol> implements pony.net.IRPC {

	@:rpc @:extern inline
	public function sayHello(from:String, to:String):Void
		trace('say hello from $from to $to');

}

class Main {

	static function main() {
                var server = new pony.net.SocketServer(Config.port);

		var serverUser = new MessageProtocol(server);

		var client = new pony.net.SocketClient(Config.port);

		var testUser = new MessageProtocol(client);
		client.onConnect < function() {
		    testUser.sayHelloRemote('little', 'guest');
		}
        }
}

Remote event dispatch

class User extends pony.net.RPC<User> implements pony.magic.HasSignal implements pony.net.IRPC {

    @:rpc public var onHello:pony.events.Signal1<String>;

}

class Main {

	static function main() {
		var server = new User(new pony.net.SocketServer(Config.port));
		server.onHello << function(s:String) trace(s);

		var client = new User(new pony.net.SocketClient(Config.port));
		client.socket.onConnect < function() client.helloRemote('little');
	}
}