質問

クライアントサーバシステムでは、詳細については、「クライアントを尋ねる」するには、サーバーメソッドのために良いアーキテクチャを考えられていますか?もしそうなら、このようなシナリオを設計するための最良の方法は何ですか?このため、「パターン」はありますか?

は、例えば、エンドユーザは、彼らがクライアントのUIで削除するレコードのセットを選択したとし、その後、クライアントは、パラメータとしてレコードのセットを使用してサーバーへの「レコードの削除」の呼び出しを行います。その後、サーバは、何らかの方法で「特別」であり、したがって、ユーザによる確認が必要となり、これらのレコードのサブセットを検索します。それは適切なサーバーが何とかまだクライアントからサーバーへの最初のコールを継続しながら、「レコードを確認」と呼ばれる方法をクライアントに「コールバック」するためですか?

そして、サーバーとクライアント間の長い「ダイアログ」を必要とすることが、より複雑なサーバー呼び出しについて何?

役に立ちましたか?

解決

そのようなコールバックは、クライアントとサーバの役割を逆にします。アーキテクチャこれらのタイプの多くでは、クライアントが要求を受け付けるために何の能力を持っていません。それがない場合は、システムのP2Pのようなものを見て始めています。おそらく、このような何かが動作する可能性があります。

client code: 
  special_records = server.deleteRecords(records)
  server.deleteSpecialRecords(special_records)

server code:
  def deleteRecords(records):
    special_records = detectSpecialRecords(records)
    reply(special_records)
    actuallyDeleteRecords(records - special_records)

だから、deleteRecordsの最初の呼び出しは、明示的に削除する必要がこれらの特別なレコードのリストを返します。この情報がお役に立てば幸いです。

他のヒント

「y、zのレコードxは、削除されなかった、それらを削除するI_RELLY_WANT_TOセットで再試行してください」と言う返事のいくつかの並べ替えは、私には合理的な解決策のように見えるでしょう。

一般的なパターン。 、頼むものを行うとバック報告していない、クライアントが次に何をすべきかを決定しましょう。これは、ダイアログの形態としての永続的な接続のコンテキストで行うことができる。

そうでもない私のフィールドので...

64mgのNaClを追加

クライアントが右、削除するファイルのリストを送信していますか?ただ、それが削除されなかった理由を、多分、ないだった1、削除、およびされたファイルの成功を示すステータスのリストとサーバの応答を、聞かせて(など何の許可を存在しません)。

一般的なケースは、すべてのファイルが正常に削除されていることである場合は、

、多分クライアントは、実際に操作を行っているかを確認するためにステータスコードを評価する必要があるかどうかをすべてのファイルが削除されたかどうかを示し、またはステータスフィールドを持つレスポンスを始めます。

この応答では、クライアントは、少なくとも削除のために選択されていたファイルに関して(すなわち、UIから正常に削除されたこれらのファイルを削除し、サーバーの状態でそのビューを更新することができるはずですまた、多分)サーバはそれに応じているため、欠落許可を削除できませんでしたそれらのファイルを示している。

;。もはや存在しませんでしたが、また、それらの

私は、配列のようなものは完全に罰金だと思います。詳細については、それを提供するために、クライアントのために、クライアントへの照会で応答からサーバーを防ぐものは何もありません。限りソケット接続が開いているとして、あなたは前後にメッセージを送信するために自由な統治を持っています。

私は、クライアントがサーバーにメッセージを送信し、サーバがそれを制御して、その後、標準入力/アウトし、ローカルマシン上のファイル・システム上の小さな層であることよりもはるかにしませんでした配置を見てきました。それはうまく働いたと非常に高速だった。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top