[英]Suggestion for encrypting data with ZeroMQ
我正在使用ØMQ进行练习,并使用cppzmq并参考zguide开发了一个简单的发布者/订阅者。 请找到与下面相同的代码片段,我能够成功发布和订阅数据,并且内存占用也相当可观。 由于这是分布式消息传递系统,因此我想在项目中使用它。
int main (int argc, char * argv[]) {
// Prepare our context and publisher
zmq::context_t context(1);
zmq::socket_t publisher(context, ZMQ_PUB);
std::string addr("tcp://*:");
addr += ((argc > 1) ? std::string(argv[1]) : "5563");
std::string tappend((argc > 2) ? std::string(argv[2]) : "");
publisher.bind(addr.c_str());
struct timeval timeofday;
for(unsigned int idx = 0; idx < Total_Topics; ++idx)
{
Topics.emplace(std::make_pair(idx, std::string("temperature/celsius" + tappend + std::to_string(idx))));
}
std::this_thread::sleep_for (std::chrono::seconds(2));
for(unsigned int NoOfTimes = 0; NoOfTimes < 20000; ++NoOfTimes)
{
for(unsigned int count = 0; count < Topics.size(); ++count)
{
{
Quote quote = {};
quote.ticker = "BHELL";
gettimeofday(&timeofday,NULL);
quote.timestampus = timeofday.tv_usec;
quote.timestamps = timeofday.tv_sec;
std::stringstream ss;
quote.value *= 0.1;
quote.data = std::to_string(NoOfTimes) + std::to_string(count);
ss << quote;
s_sendmore(publisher, Topics[count]);
std::cout << "Publish "<< Topics[count] << std::endl;
s_send(publisher, ss.str());
}
}
std::this_thread::sleep_for (std::chrono::seconds(8));
}
return 0;
}
int main (int argc, char * argv[]) {
// Prepare our context and subscriber
zmq::context_t context(1);
zmq::socket_t subscriber (context, ZMQ_SUB);
std::string addr("tcp://localhost:");
addr += ((argc > 1) ? std::string(argv[1]) : "5563");
std::string tappend((argc > 2) ? std::string(argv[2]) : "");
subscriber.connect(addr.c_str());
struct timeval timeofday;
std::string topic("");
for(unsigned int idx = 0; idx < Total_Topics; ++idx)
{
topic = std::string("temperature/celsius" + tappend + std::to_string(idx));
subscriber.setsockopt( ZMQ_SUBSCRIBE, topic.c_str(), topic.length());
}
while(1)
{
{
Quote quote;
std::stringstream ss;
std::string address = s_recv (subscriber);
std::cout<<"Msg Rcvd" << std::endl;
std::cout<<"Topic: " << address << std::endl;
std::string contents = s_recv (subscriber);
ss << contents;
ss >> quote;
gettimeofday(&timeofday,NULL);
std::cout << "us diff " << (timeofday.tv_usec - quote.timestampus) << std::endl;
std::cout << "Sec diff " << (timeofday.tv_sec - quote.timestamps) << std::endl;
}
}
return 0;
}
现在,我想知道zeroMQ应该使用哪种安全技术。 我知道这里有curveZMQ和czmq 。 但是我不确定应该使用哪一个。 任何人都已经使用过这些工具中的任何一个,或者您具有用于ZeroMQ安全的其他任何库。 请指教。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.