Python: отправка запроса на сервер protobuf

Кто-нибудь может мне помочь?

У меня есть файл .proto.

Как отправить и распечатать запрос на сервер сокетов от клиента? Как ответить клиенту?

протофайл:

option optimize_for = SPEED;
option java_package = "org.epicsquad.protofile.proto";

package protofile.proto;

enum CommandTypeEnum {

COMMAND_one = 0;
COMMAND_two = 1;  
COMMAND_three = 2;

}

enum ResultTypeEnum {

RESULT_ONE = 0;
RESULT_TWO = 1;

message Result {

required uint32 result_one = 1;
optional string result_two = 2;

}

message Request {

optional string req1 = 1;
optional string req2 = 2;  

}

message Response {

required string resp1 = 1;
required string resp2 = 2;

}

сервер:

import sys
sys.path.append('../../main')
import protobuf.socketrpc.server as server
server = server.SocketRpcServer(8090)
print 'Serving on port 8090'
server.run()

клиент:

import sys
sys.path.append('../../main')
import protofile_pb2
from protobuf.socketrpc import RpcService
import logging
log = logging.getLogger(__name__)
logging.basicConfig(level=logging.DEBUG)
hostname = 'localhost'
port = 8090
request = protofile_pb2.Request()

У меня есть пример HelloWorld, но он отправляет запрос через СЕРВИС. Но в моем .protofile нет служебных сообщений. Спасибо!!!


person Snuff4uk    schedule 02.09.2014    source источник


Ответы (1)


добавьте option py_generic_services = true; эту строку в свой файл .proto. если вы этого не сделаете, protoc не будет генерировать заглушки, которые вам нужны для rpc

person Black_Rider    schedule 21.02.2015