我已经能够编写和运行简单的ZMQ发布者 - 订阅者示例,但现在需要将它们集成到更大的项目中并陷入僵局。
我的main()
函数有一个经常执行的回调。在回调内部,实例化某个类并调用其成员函数。该成员函数是执行某些操作并发布一些数据的函数。我需要知道在哪里准备ZMQ上下文,发布者套接字并绑定套接字以获得最佳性能。如果我在成员函数中执行所有这些操作,那么它不是最优的,因为它会经常被调用,而且它们只需要完成一次。
int main(){
// Set up callback to mycallback()
}
void mycallback(args){
Class cls;
cls.somefunction();
}
// from Class.cpp
void Class::somefunction(){
// Publish
char msg[20];
sprintf (msg, "Test");
s_send(publisher, msg);
}
我应该如何以及在哪里放线?:
zmq::context_T context(1);
zmq::socket_t publisher(context, ZMQ_PUB);
publisher.bind("tcp://*:5556");