Передача объекта в rpyc не удалась

Я пытаюсь передать объект в качестве параметра, используя RPyC от клиента к серверу. Но сервер не может получить доступ к объекту, и я получаю AttributeError.

Код сервера:

class AgentService(rpyc.Service):
  def exposed_func(self, obj):
    return obj.name

код клиента

self._conn = connect(agent_host, agent_port, config = {"allow_public_attrs" : True})
return self._conn.root.func(obj)

returns: AttributeError: cannot access 'name'.

Я пользуюсь услугами RPyC и подключаюсь к сайту, это должно работать.

Есть идеи?

1 ответ

Решение

Конфигурация должна быть настроена на стороне клиента и на стороне сервера.

Основная ценность для изменения allow_public_attrs : True если только открытые переменные должны быть доступны или allow_all_attrs : True если необходимо получить доступ к закрытым и защищенным переменным и методам (т. е. к тем, которые начинаются с '_').

На стороне клиента код подключения записывается так же, как в приведенном выше вопросе, а код сервера выглядит следующим образом:

server = ThreadedServer(MyService, port = 12345,
                        protocol_config = {"allow_public_attrs" : True})

Для получения дополнительной информации обо всех доступных параметрах конфигурации см.:

http://rpyc.sourceforge.net/api/core_protocol.html

Другие вопросы по тегам