警告: これはアルファ版のコードなので、運用用途には使用しないでください。
クライアント/サーバー接続のセットアップを簡素化する Haxe の拡張ライブラリ。次の機能がサポートされています。
hxnet が使用するサポートされているトランスポート層は、TCP と UDP の 2 つです。 TCP は、HTTP、FTP、Telnet、その他多数の信頼できるサービスに一般的に使用されます。 UDP はコネクションレスであり、ゲームに役立つ信頼性の低いデータを迅速に処理するために使用されます。
トランスポート層の最上位には、クライアント クラスとサーバー クラスがあります。これらは、単純な接続、データの送信/取得、および例外を処理します。 UDP クラスは、さまざまな IP アドレスから受信したデータとタイムアウト値に基づいて接続を偽装し、接続が切断されるタイミングを決定します。
クライアント オブジェクトまたはサーバー オブジェクトを作成するときは、それにプロトコルを渡す必要があります。プロトコルは、クライアントとサーバー間の特定の対話を定義します。たとえば、クライアントからサーバー上の関数を簡単に呼び出す (またはその逆) カスタム RPC ベースのプロトコルを作成できます。プロトコルの別の例としては、サーバーからブラウザへの応答を生成できる HTTP があります。
基本的な Telnet エコー サーバーを作成するとします。これを行うには、Telnet プロトコルを拡張し、 lineReceived
関数をオーバーライドします。
class Echo extends hxnet.protocols. Telnet
{
override private function lineReceived ( line : String )
{
writeLine ( line );
}
static public function main ()
{
var server = new hxnet.tcp. Server ( new hxnet.base. Factory ( Echo ), 4000 );
server . start ();
}
}
main 関数は、TCP サーバー (ポート 4000) のインスタンスを作成し、基本 Factory クラスを使用してクライアント接続ごとに Echo の新しいインスタンスを作成します。次に、 start
呼び出します。これは、ポートをリッスンして無限に更新するためのショートカットです。
データを取得するためにサーバーに接続することが必要な場合があります。デフォルトでは、hxnet はすべての接続をブロックします。これは、レンダリングをロックアップするため、GUI アプリケーションで問題になる可能性があります。この問題は、 blocking
を false に設定することで修正できます。
class Client extends hxnet.protocols. Telnet
{
override private function lineReceived ( line : String )
{
trace ( line );
}
static public function main ()
{
var client = new hxnet.tcp. Client ();
client . protocol = new Client (); // set the protocol we want to use
client . connect ( " localhost " , 4000 );
client . blocking = false ; // important for gui clients
while ( true )
{
client . update ();
// add application logic here
}
}
}
著作権 (C) 2013-2014 マット タトル
本ソフトウェアおよび関連ドキュメント ファイル (以下「ソフトウェア」) のコピーを入手した人には、使用、コピー、変更、マージする権利を含むがこれらに限定されない、制限なくソフトウェアを取り扱う許可が、ここに無償で与えられます。 、以下の条件を条件として、本ソフトウェアのコピーを出版、配布、サブライセンス、および/または販売すること、および本ソフトウェアが提供される人物にそれを許可すること。
上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは主要部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、明示的か黙示的かを問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる種類の保証も行われません。いかなる場合においても、作者または著作権所有者は、契約行為、不法行為、またはその他の行為であるかどうかにかかわらず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して生じる、いかなる請求、損害、またはその他の責任に対しても責任を負わないものとします。ソフトウェア。