SOAPまたはXML-RPCを使用して、製品用のリモートのオープンAPIを作成する方法を理解しようとしています。 問題は、私のAPIの一部で、私のサーバーからクライアントにプッシュされたイベントを取得する必要があります。私はAPIの一環として「関数を呼び出す」だけでなく、「コールバックを送る」ことができる必要があります。 SOAPまたはXML-RPCでこれを行う良い方法はありますか?XML-RPCまたはSOAPでコールバックを実装する
答えて
RPCシステムで通知を行うには、プッシュモデルとプルモデルの2つの方法があります。プルモデルでは、クライアントは、通知が利用可能かどうかを定期的にサーバーに照会します。サーバーは、クライアントがそれらをフェッチするまで(または期限が切れるまで)それらを保管する必要があります。一変形として、クライアントは、次のイベントが利用可能になるまでブロックし、その後すぐに戻るブロッキングRPC呼び出しを持つかもしれません。 CORBAではうまく動作しますが、SOAP実装やXML-RPCではうまく機能しません。これは、HTTP実装では通常、接続を何時間も開いておく準備ができていないためです。
プッシュモデルでは、プロデューサはコンシューマでRPCを呼び出し、コンシューマをサーバーにします。クライアントは通常、サーバーの役割を果たす準備ができておらず、ファイアウォールによってコールバックが通過しない可能性があるため、SOAPやXML-RPCではうまく機能しません。したがって、定期的な引き込みは最も現実的なアプローチです。
P.S.私はあなたの専門用語に従わなかったことに気づいたかもしれません。イベントを押すことはできません。イベントは起こることです。通知がプッシュできるのは、イベントが発生したという情報です。
これはWCFで行うことができます。しかし、私はあなたが相互運用可能な方法でそれを行うことができるかどうかはわかりません。 Duplex Servicesをご覧ください。
最後に、コールバックを直ちに返さないAPIとして処理することが決定されました。
基本的には、RPC-XML要求が送信され、指定されたイベントリストで通知を受けるよう求められます。私たちのサーバーは、イベントが発生するまで待ってから、何も起こっていないことを通知して、一定時間後に応答またはタイムアウトとして報告します。呼び出し元は、要求を再試行して、待機し続けることができます。
- 1. XMLRPCの実装
- 2. AVAudioEngineでAuAudioBufferのコールバックを実装する
- 3. Qtでコールバックを実装する
- 4. DelphiでDLLコールバックを実装する
- 5. Microsoftが提供するSOAP実装以外の代替SOAP実装
- 6. FakeItEasyコールバックの実装
- 7. WCFコールバックの実装
- 8. Windowsメッセージループを使用したコールバック実装
- 9. UPnPアーキテクチャのSOAP実装
- 10. SOAPライブラリWS-ReliableMessagingの実装
- 11. Java WebサービスでSoap Faultを実装する方法は?
- 12. delphi/firemonkey:アクティビティでコールバックを実装する方法は?
- 13. Angular4でngForコールバックを実装する方法は?
- 14. Java:onCompleteコールバックでコマンドパターンを簡単に実装できますか?
- 15. EclipseでOSGiを使用してSOAPを実装する
- 16. Cでコールバックを実装するネイティブライブラリをラップする
- 17. SOAP WebサービスでWebソケットを実装する方法
- 18. SOAP Webサービス - 複数の接続 - 静的な値 - XMLRPC APIは
- 19. ループバックでコールバックを実装する '保存する前に'フック
- 20. ASP.NETでJavaScriptコールバックを実装していますか?
- 21. JS/jQueryでプログラムでコールバックを実装する
- 22. アクティビティのあるAndroidでコールバックを実装する
- 23. Androidでコールバックを実装できません
- 24. C++でSOAPまたはRESTを実行するオプション
- 25. tkinterのキャンバス・アイテムにマウス・ホバー・コールバックを実装する方法は?
- 26. SOAPとREST APIを一緒に実装することができます
- 27. RubyでXMLRPC :: Clientのwiredumpを実行するには?
- 28. Flaskログインでuser_loaderコールバックを実装する方法
- 29. フレックスクライアントでwcfコールバック機能を実装する方法
- 30. KotlinでTornadoFX WebEngineコールバックを実装する方法
これは、本質的に、定期的な更新が残っていることを意味します。これは、リソースの面でいくらか無駄です。 お返事ありがとうございます –