5

クライアントからサーバーに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サービスを使用しており、Webサイトに準拠していますが、これは機能するはずです。

何か案は?

4

1 に答える 1

5

config dictは、クライアント側とサーバー側で調整する必要があります。

変更する主な値は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

于 2012-08-30T08:55:56.043 に答える