初心者の方は、gen_serverを使っておもちゃのマッチング(取引)エンジンを作成してください。Erlang:gen_server - 2つのクライアントに返信
取引が行われると、両方のクライアントに通知する必要があります。
reply(Client, Reply) -> Result
タイプ:
Client - see below Reply = term() Result = term()
この機能を明示的にするとき、
call/2,3
またはmulti_call/2,3,4
と呼ばれるクライアントに返信 を送信するためにgen_serverで使用することができますドキュメントと言います応答 は、戻り値
Module:handle_call/3
で定義できません。クライアントは、コールバック関数に指定されたFrom引数でなければなりません。返信は に戻り値
call/2,3
またはmulti_call/2,3,4
として返される任意の用語です。戻り値resultはそれ以上定義されておらず、常に を無視する必要があります。
上記を前提として、他のクライアントに通知を送信することができます。行動
C1 -> Place order IBM,BUY,100,10.55
Server -> Ack C1 for order
C2 -> Place order IBM,SELL,100,10.55
Server -> Ack C2 for order
-> Trade notification to C2
-> Trade notification to C1 %% Can I use gen_server:reply()
%% If yes - How ?
説明を明確にするために、これはgen_serverが取引エンジンには適切でないことを意味します。これは、推奨されるgen_ *を使用することに意味があります。 – CSP
@CSP、私はgen_serverが不適切だと言っているわけではない、私はそれが最良の解決策ではないと言っている。私はあなたがそれから始めることができると信じていますが、後でこの決定を変更したいかもしれません。 – Lol4t0