python rpc 예제

이 간단한 서버 예제는 디렉터리 이름을 가져와 내용을 반환하는 단일 함수를 노출합니다. 첫 번째 단계는 SimpleXMLRPCServer 인스턴스를 만들고 들어오는 요청(이 경우 `localhost` 포트 9000)을 수신할 위치를 알려주는 것입니다. 그런 다음 서비스의 일부로 함수를 정의하고 서버가 호출하는 방법을 알 수 있도록 함수를 등록합니다. 마지막 단계는 서버를 무한 루프에 넣고 요청을 수신하고 응답하는 것입니다. 이 클래스는 모든 Python 값에서 초기화될 수 있습니다. 반환된 인스턴스는 해당 진실 값에만 따라 달라집니다. __cmp__(), __repr__(), __int__(__int__)) 및 __nonzero___(_nonzero__)의 메서드를 통해 다양한 파이썬 연산자들을 지원하며 모두 명백한 방식으로 구현됩니다. 참고: pb2의 2는 생성된 코드가 프로토콜 버퍼 파이썬 API 버전 2를 따르고 있음을 나타냅니다. 버전 1은 더 이상 사용되지 않습니다. .proto 파일에서 구문 = “proto3″ 또는 구문 = “proto2″로 표시된 프로토콜 버퍼스 언어 버전과는 관계가 없습니다. 예제 디렉터리에서 생성된 코드 버전을 이미 제공했기 때문에 이 명령을 실행하면 새 파일을 만드는 대신 적절한 파일이 재생성됩니다. 생성된 코드 파일을 route_guide_pb2.py 및 route_guide_pb2_grpc.py라고 하며 포함합니다. 사실 나는 JSON-RPC를 좋아하지 않는다.

그것은 불필요 하 게 un-RESTful, 그리고 XML-RPC에 너무 밀접 하 게 모델링. 기본적으로 register_instance()는 `_`로 시작하지 않는 이름으로 인스턴스의 모든 호출 가능한 특성을 찾아 해당 이름으로 등록합니다. 노출된 메서드에 대해 더 주의를 기울이고 싶다면 고유한 디스패치 논리를 제공할 수 있습니다. 예를 들어 여기에 제공된 모든 예제에는 데모 서버와 상호 작용하는 클라이언트 모듈이 포함됩니다. 코드를 다운로드하고 예제를 실행하려면 서버에 하나씩, 클라이언트용으로 하나씩 2개의 별도의 셸 창을 사용해야 합니다. 다음 예제에서는 XMLRPC 서버를 가리키지 않는 URI를 제공하여 프로토콜 오류를 의도적으로 발생시려고 합니다. 파이썬에서 이것은 반환 된 값의 유형이 목록이 아닌 다른 것이 된다는 것을 의미합니다. XML-RPC 요청에 응답할 수 있는 함수를 등록합니다. 이름이 주어지면 함수와 연결된 메서드 이름이 되며, 그렇지 않으면 function._name___가 사용됩니다.

이름은 일반 문자열 또는 유니코드 문자열일 수 있으며 기간 문자를 포함하여 Python 식별자에 합법적이지 않은 문자를 포함할 수 있습니다.

Thanks! You've already liked this