Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
fw:zeromq [2013/07/07 19:57] alfred [Devices] |
fw:zeromq [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 98: | Línea 98: | ||
| * Si un publisher no tiene subscribers los mensajes quedarán desechados. | * Si un publisher no tiene subscribers los mensajes quedarán desechados. | ||
| * TCP con esta estructura es lento. | * TCP con esta estructura es lento. | ||
| + | * Para realizar una subscripción a todos los mensajes haremos: | ||
| + | <code python> | ||
| + | socket.setsockopt(zmq.SUBSCRIBE, "") | ||
| + | </code> | ||
| ==== Pipeline ==== | ==== Pipeline ==== | ||
| Funciona como el Rep-Req sólo que en este no hay una respuesta desde el otro nodo. Es perfecto para los mensajes en paralelo. Imaginemos la siguiente estructura: \\ | Funciona como el Rep-Req sólo que en este no hay una respuesta desde el otro nodo. Es perfecto para los mensajes en paralelo. Imaginemos la siguiente estructura: \\ | ||
| Línea 333: | Línea 336: | ||
| * Saber la versión con ''zmq.zmq_version()''. | * Saber la versión con ''zmq.zmq_version()''. | ||
| * Para realizar conexiones no bloqueantes los usaremos con [[fw:gevent&#zeromq|greenlets]]. | * Para realizar conexiones no bloqueantes los usaremos con [[fw:gevent&#zeromq|greenlets]]. | ||
| + | * Para instalar la librería en el sistema: ''apt-get install libzmq-dev''. | ||
| + | |||
| + | ==== Instalar en Ubuntu ==== | ||
| + | Instalación de la librería del sistema: | ||
| + | <code> | ||
| + | $ sudo apt-get install python-dev libzmq-dev | ||
| + | </code> | ||
| + | Instalación en Python: | ||
| + | <code> | ||
| + | $ sudo pip install pyzmq | ||
| + | </code> | ||
| + | Recuerda que para utilizar ''pip'' has de tener instalado el paquete ''python-pip'' | ||
| + | ==== Instalar en Windows ==== | ||
| + | Necesitarás agregar el paquete ''VS2010 C++ redistributable''. | ||
| ==== Como... ==== | ==== Como... ==== | ||
| === Enviar\recibir varios paquetes === | === Enviar\recibir varios paquetes === | ||
| Línea 389: | Línea 406: | ||
| # Do the work | # Do the work | ||
| time.sleep(int(s)*0.001) | time.sleep(int(s)*0.001) | ||
| + | </code> | ||
| + | |||
| + | === Enviar no bloqueante === | ||
| + | * Pero cuidado, el objeto sender no se elminará hasta que los datos hayan sido enviados. | ||
| + | <code python> | ||
| + | sender.send(jdata, zmq.NOBLOCK) | ||
| </code> | </code> | ||