あなたの質問を正しく理解している場合、これを達成するにgetServiceRequest
は、使用しているゲートウェイ クラスをオーバーライドする必要があります。
from pyamf.remoting.gateway.django import DjangoGateway
from pyamf.remoting.gateway import UnknownServiceError
class MyGateway(DjangoGateway):
def __init__(self, router_func, **kwargs):
self.router = router_func
DjangoGateway.__init__(self, **kwargs)
def getServiceRequest(self, request, target):
try:
return DjangoGateway.getServiceRequest(self, request, target)
except UnknownServiceError, e:
pass
# cached service was not found, try to discover it
try:
service_func = self.router(target)
except:
# perhaps some logging here
service_func = None
if not service_func:
# couldn't find a service matching `target`, crap out appropriately
raise e
self.addService(service_func, target)
return DjangoGateway.getServiceRequest(self, request, target)
self.router
ゲートウェイのコンストラクターに提供する関数です。AMF リモーティング リクエストの文字列ターゲットを取得し、一致する関数を返します。例外が返さNone
れるか発生すると、未知のサービス応答がリクエスタに返されます。
うまくいけば、これはあなたが必要とするものの基礎を築くのにいくらか役立つでしょう.