Если я правильно понимаю ваш вопрос, для достижения этого вам необходимо переопределить 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
или вызывает исключение, неизвестный ответ службы будет возвращен запрашивающей стороне.
Надеемся, это каким-то образом заложит основу для того, что вам требуется.