提交 6db0f7f8 authored 作者: blu's avatar blu

cloud cmd api for platform client

上级 bf6968e5
......@@ -841,6 +841,7 @@ public:
spdlog::error("evcloudsvc failed setup router: {}", addr);
exit(1);
}
// setup edge msg processor
thMsgProcessor = thread([this]() {
while(true) {
......
......@@ -492,9 +492,11 @@ private:
for(auto &s:v) {
msg += body2str(s) + ";";
}
spdlog::info("evdaemon {} received msg from cloud: {}", devSn, msg);
if(v.size() != 3) {
spdlog::error("evdaemon {} received invalid msg from cloud {}", devSn, msg);
spdlog::error("evdaemon {} received invalid msg from evcloudsvc {}", devSn, msg);
}
else {
......@@ -769,13 +771,17 @@ public:
// setup cloud msg processor
thCloud = thread([this]() {
while(true) {
spdlog::info("evdaemon {} waiting for msg from evcloudsvc", this->devSn);
auto v = zmqhelper::z_recv_multiple(this->pDealer);
if(v.size() == 0) {
spdlog::error("evdaemon {} failed to receive msg {}", this->devSn, zmq_strerror(zmq_errno()));
}
else {
handleCloudMsg(v);
spdlog::info("evdaemon {} successfully handled msg from evcloudsvc", this->devSn);
}
}
});
......
......@@ -217,8 +217,22 @@ private:
json evslicer = ipc["modules"]["evslicer"][0];
slicerGid = evslicer["sn"].get<string>()+":evslicer:" + to_string(evslicer["iid"]);
urlPub = string("tcp://") + evpuller["addr"].get<string>() + ":" + to_string(evpuller["portPub"]);
urlRouter = string("tcp://") + evmgr["addr"].get<string>() + ":" + to_string(evmgr["portRouter"]);
int portPub = 5556;
if(evpuller.count("portPub") != 0 && evpuller["portPub"].is_number_integer()) {
portPub = evpuller["portPub"];
}else if(evpuller.count("port-pub") != 0 && evpuller["port-pub"].is_number_integer()){
portPub = evpuller["port-pub"];
}
int portRouter = 5550;
if(evmgr.count("portRouter") != 0 && evmgr["portRouter"].is_number_integer()) {
portRouter = evmgr["portRouter"];
}else if(evmgr.count("port-router") != 0 && evmgr["port-router"].is_number_integer()) {
portRouter = evmgr["port-router"];
}
urlPub = string("tcp://") + evpuller["addr"].get<string>() + ":" + to_string(portPub);
urlRouter = string("tcp://") + evmgr["addr"].get<string>() + ":" + to_string(portRouter);
spdlog::info("evmlmotion {} will connect to {} for sub, {} for router", selfId, urlPub, urlRouter);
// TODO: multiple protocols support
......
......@@ -220,8 +220,22 @@ private:
exit(1);
}
urlPub = string("tcp://*:") + to_string(evpuller["portPub"]);
urlDealer = "tcp://" + evmgr["addr"].get<string>() + string(":") + to_string(evmgr["portRouter"]);
int portPub = 5556;
if(evpuller.count("portPub") != 0 && evpuller["portPub"].is_number_integer()) {
portPub = evpuller["portPub"];
}else if(evpuller.count("port-pub") != 0 && evpuller["port-pub"].is_number_integer()){
portPub = evpuller["port-pub"];
}
int portRouter = 5550;
if(evmgr.count("portRouter") != 0 && evmgr["portRouter"].is_number_integer()) {
portRouter = evmgr["portRouter"];
}else if(evmgr.count("port-router") != 0 && evmgr["port-router"].is_number_integer()) {
portRouter = evmgr["port-router"];
}
urlPub = string("tcp://*:") + to_string(portPub);
urlDealer = "tcp://" + evmgr["addr"].get<string>() + string(":") + to_string(portRouter);
spdlog::info("evpuller {} bind on {} for pub, connect to {} for dealer", selfId, urlPub, urlDealer);
pPubCtx = zmq_ctx_new();
......
......@@ -91,8 +91,23 @@ private:
pullerGid = evpuller["sn"].get<string>() + ":evpuller:" + to_string(evpuller["iid"]);
mgrSn = evmgr["sn"];
urlPub = string("tcp://") + evpuller["addr"].get<string>() + ":" + to_string(evpuller["portPub"]);
urlDealer = string("tcp://") + evmgr["addr"].get<string>() + ":" + to_string(evmgr["portRouter"]);
int portPub = 5556;
if(evpuller.count("portPub") != 0 && evpuller["portPub"].is_number_integer()) {
portPub = evpuller["portPub"];
}else if(evpuller.count("port-pub") != 0 && evpuller["port-pub"].is_number_integer()){
portPub = evpuller["port-pub"];
}
int portRouter = 5550;
if(evmgr.count("portRouter") != 0 && evmgr["portRouter"].is_number_integer()) {
portRouter = evmgr["portRouter"];
}else if(evmgr.count("port-router") != 0 && evmgr["port-router"].is_number_integer()) {
portRouter = evmgr["port-router"];
}
urlPub = string("tcp://") + evpuller["addr"].get<string>() + ":" + to_string(portPub);
urlDealer = string("tcp://") + evmgr["addr"].get<string>() + ":" + to_string(portRouter);
spdlog::info("evpusher {} connect to {} for sub, {} for router", selfId, urlPub, urlDealer);
// TODO: multiple protocols support
urlOut = evpusher["urlDest"].get<string>();
......
......@@ -301,8 +301,23 @@ private:
spdlog::info("evslicer mkdir -p {}", selfId, urlOut);
ret = system((string("mkdir -p ") + urlOut).c_str());
urlPub = string("tcp://") + evpuller["addr"].get<string>() + ":" + to_string(evpuller["portPub"]);
urlRouter = string("tcp://") + evmgr["addr"].get<string>() + ":" + to_string(evmgr["portRouter"]);
int portPub = 5556;
if(evpuller.count("portPub") != 0 && evpuller["portPub"].is_number_integer()) {
portPub = evpuller["portPub"];
}else if(evpuller.count("port-pub") != 0 && evpuller["port-pub"].is_number_integer()){
portPub = evpuller["port-pub"];
}
int portRouter = 5550;
if(evmgr.count("portRouter") != 0 && evmgr["portRouter"].is_number_integer()) {
portRouter = evmgr["portRouter"];
}else if(evmgr.count("port-router") != 0 && evmgr["port-router"].is_number_integer()) {
portRouter = evmgr["port-router"];
}
urlPub = string("tcp://") + evpuller["addr"].get<string>() + ":" + to_string(portPub);
urlRouter = string("tcp://") + evmgr["addr"].get<string>() + ":" + to_string(portRouter);
spdlog::info("evslicer {} will connect to {} for sub, {} for router", selfId, urlPub, urlRouter);
// setup sub
......
......@@ -97,7 +97,7 @@ int setupRouter(void **ctx, void **s, string addr){
int opt_notify = ZMQ_NOTIFY_DISCONNECT|ZMQ_NOTIFY_CONNECT;
*ctx = zmq_ctx_new();
*s = zmq_socket(*ctx, ZMQ_ROUTER);
zmq_setsockopt (*s, ZMQ_ROUTER_NOTIFY, &opt_notify, sizeof (opt_notify));
zmq_setsockopt(*s, ZMQ_ROUTER_NOTIFY, &opt_notify, sizeof (opt_notify));
ret = zmq_bind(*s, addr.c_str());
if(ret < 0) {
spdlog::debug("failed to bind zmq at {} for reason: {}, retrying load configuration...", addr, zmq_strerror(zmq_errno()));
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论