私はいくつかのDatasnapテストをRESTとjsonで実行しています。Delphi DataSnap Rest
ユニットServerMethodsには、Delphi自身が作成する「ReverseString」機能がありますが、どのように送信したのかをどのように知ることができますか?
このメソッドを呼び出したクライアントからの情報のログを保持したいと思います。
私はパラメータとして渡すことができますが、この情報を私に渡すのはクライアントの責任であることを私は望んでいません。メソッドが公開され、いくつかのクライアントがこの情報。私は簡単にこのコントロールを失うことができます、私は直接サーバーの制御によって情報を取得しない場合。
Procedure TServerContainer1.DSServer1Connect (
DSConnectEventObject: TDSConnectEventObject);
Begin
DSConnectEventObject.ChannelInfo.ClientInfo.IpAddress;
DSConnectEventObject.ChannelInfo.ClientInfo.ClientPort;
DSConnectEventObject.ChannelInfo.ClientInfo.Protocol;
DSConnectEventObject.ChannelInfo.ClientInfo.AppName;
End;
しかし:
私はServerConteinerユニットで、「dsserverの」オブジェクトを持っていることを、このオブジェクトは「のOnConnect」というイベントがあり、それは以下のSAデータを得ることができるので、ウェブ上で発見しました私はServerMethods.ReverseStringにどのようにこのデータを取得することができます見つけることができません...私は処理がサーバー上のスレッド内にあると思うので、私はそれを選ぶことができるので、グローバルとしてこの値を渡すことはできません他の同時接続からのアップ情報を含む。次のような方法で
、ReverseStringは、私が試した:
Var
ADSServerClass: TDSServerClass;
Begin
ADSServerClass: = TDSServerClass (GetOwner);
TDSServer (ADSServerClass.Server). ???
// I got to the server, but I can not find it, and I do not know if it is this way to find the data of who is requesting me to execute the ReverseString
End;
あなたが検索した場合は - あなたのDelphiのサンプル\ Object Pascalの\ DataSnapのフォルダにReverseString用ファイル内のファイルを、 ReverseStringメソッドを呼び出すさまざまなデモに移動します。また、Googleのdelphiの「servermethods」チュートリアルの場合は、次のようなものがあります。https://www.youtube.com/watch?v=C8iqCk4O6Tg – MartynA
私は同様のことを試みて失敗しました。 「接続レベル」情報(servercontainerunit)は、「アプリケーションレベル」(servermethodsunit)では使用できません。 – nolaspeaker