working commit
This commit is contained in:
+2
-60
@@ -20,66 +20,8 @@ extern "C" {
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
void SocketHandler::Handle(int sock) {
|
||||
std::cout << std::format("Handler {} start", sock) << std::endl;
|
||||
|
||||
const int headerSize = 8;
|
||||
std::string rawResHeader;
|
||||
|
||||
char buffer[headerSize];
|
||||
memset(&buffer, 0, headerSize);
|
||||
int rsize = 0;
|
||||
|
||||
if ((rsize = read(sock, &buffer, headerSize)) < 0) {
|
||||
logger.Log("Error read");
|
||||
close(sock);
|
||||
return;
|
||||
}
|
||||
logger.Log(std::format("rpc rsize {}", rsize));
|
||||
|
||||
RPCHeader inRPCHeader;
|
||||
std::string i(buffer, headerSize);
|
||||
inRPCHeader.Decode(i);
|
||||
int rcpPacketSize = inRPCHeader.PacketSize();
|
||||
logger.Log(std::format("rpc packet size {}", rcpPacketSize));
|
||||
|
||||
char buffer2[rcpPacketSize];
|
||||
|
||||
if ((rsize = read(sock, &buffer2, rcpPacketSize)) < 0) {
|
||||
logger.Log("Error read");
|
||||
close(sock);
|
||||
return;
|
||||
}
|
||||
logger.Log(std::format("rpc packet rsize {}", rsize));
|
||||
|
||||
std::string rawReq(buffer2, rcpPacketSize);
|
||||
|
||||
control::HelloRequest pbReq;
|
||||
pbReq.ParseFromString(rawReq);
|
||||
logger.Log(std::format("rpcName: {}", pbReq.meta().rpcname()));
|
||||
logger.Log(std::format("req message: {}\n", pbReq.message()));
|
||||
|
||||
control::HelloResult pbRes;
|
||||
pbRes.set_message("Johnny!");
|
||||
auto resMeta = pbRes.mutable_meta();
|
||||
resMeta->set_error(false);
|
||||
std::string rawRes;
|
||||
pbRes.SerializeToString(&rawRes);
|
||||
|
||||
RPCHeader outRPCHeader(rawRes.size());
|
||||
auto rawPacket = outRPCHeader.Encode();
|
||||
rawPacket.append(rawRes);
|
||||
|
||||
int wsize = 0;
|
||||
if ((wsize = write(sock, rawPacket.data(), rawPacket.size())) < 0) {
|
||||
logger.Log("Error write");
|
||||
close(sock);
|
||||
return;
|
||||
}
|
||||
|
||||
logger.Log(std::format("Handler {} done", sock));
|
||||
close(sock);
|
||||
}
|
||||
void SocketHandler::Handle(int sock) {};
|
||||
SocketHandler::~SocketHandler(void) {};
|
||||
|
||||
Service::Service(int svcport) {
|
||||
port = svcport;
|
||||
|
||||
Reference in New Issue
Block a user