在确定的时间内避免在ZMQ中进行缓冲
Avoid buffering in ZMQ for a determined time?
我们正在阅读在ZMQ中播放的Kinect的消息。
我们或多或少使用以下代码:
socket_t subscriber_eeg(context, ZMQ_SUB);
subscriber_eeg.connect("tcp://127.0.0.1:5559");
while(true)
{
Do Random stuff
if (pressedPause)
{
//shows message
continue;
}
subscriber.recv(&kinect_msg);
//code to process message
//code to plot the hand movements.
}
目标是在有人按下暂停键的给定事件上暂停代码的执行。暂停事件在线程上独立运行。
一切都很好,但问题是,由于ZMQ缓冲消息,它突然开始绘制在暂停状态下捕捉的每一个移动。
有没有办法告诉ZMQ在暂停的情况下停止接收消息,或者清除缓冲区?
只需切换连接状态:
subscriber.connect("tcp://127.0.0.1:5559");
//do work
//user presses 'Pause'
subscriber.disconnect("tcp://127.0.0.1:5559");
//user un-'Pauses'
subscriber.connect("tcp://127.0.0.1:5559");
我刚刚用单独的线程测试了这一点,当订阅者醒来时,它不会重新接收在断开连接状态下发送的消息。
相关文章:
- 如何使用原子指针执行双缓冲
- 消费者和生产者问题的双重缓冲
- 在 capnp FlatArrayMessageReader 的对齐内存缓冲区中接收 zmq 消息
- 如何检测是否在缓冲绘画动画中绘制最后一帧?
- 我似乎无法修改帧缓冲
- 如何在C++中写入 1000 个文件时有效地缓冲
- 无法在 Linux 上运行C++ ZMQ 项目的可执行文件
- 帧缓冲纹理变为白色(片段着色器不会影响它)
- ZMQ::send() 抛出异常并终止 QNX 进程.为什么以及如何从中恢复?
- ZMQ - 客户端服务器:客户端意外关闭,服务器如何检测到?
- 我是否使用双缓冲?
- 为什么 zmq 将多条消息打包到一个 TCP 帧中?
- OpenGL:使用实例化绘图与我正在绘制的帧缓冲进行绘制
- 当通过tcp接收编码图像的消息时,zmq在第二个循环中崩溃
- 如何强制文件描述符缓冲我的输出
- 如何在ZMQ代理中记录接收消息?
- ZMQ:连接 ZMQ 插座时"Resource temporarily unavailable"
- Qt双缓冲行为
- 如何在没有缓冲的情况下使用 parquet-cpp 写入面向流/行的数据?
- 在确定的时间内避免在ZMQ中进行缓冲