问题标签 [pyzmq]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
zeromq - ZeroMQ REQ/REP 服务器错误处理
我正在尝试使用 ZeroMQ rep/req,但无法弄清楚如何处理服务器端错误。从这里查看代码:
我的问题是如果客户端调用 socket.send() 然后挂起或崩溃会发生什么。服务器不会永远卡在 socket.send() 或 socket.recv() 上吗?
请注意,这不是 TCP 套接字的问题。使用 TCP 套接字,我可以简单地断开连接。使用 ZMQ,连接为我隐式管理,我不知道是否可以中断“会话”或“连接”并重新开始。
python - 在 Sublime Text 3 和 Ipython shell 中加载 SublimeREPL 的问题
我一直试图解决这个问题一段时间,但我无法解决它。我将 SublimeREPL 与 Sublime Text 3 一起使用。每当我尝试从 SublimeREPL 启动 Ipython shell 时,都会收到此错误:
问题似乎出在 application.py 模块中的这个 ZMGTerminalIPythonApp 对象上。当我从命令行加载它时,Ipython 工作得很好。
更新:所以我也尝试直接从命令行运行 ipy_repl.py 文件。我原以为它会失败,但它实际上工作得很好。我没有收到上面的错误。所以不清楚为什么从 ST3 调用 SublimeREPL 时出现上述错误,但是当我从命令行调用 SublimeREPL ipython shell 时,一切正常。
有没有其他人能够解决这个问题?
python - zeromq:为什么经销商发送一条消息并从一个客户端接收?
我试图了解我的代码的行为。我正在使用 zeromq 创建一个发送“ping”并等待“pong”响应的服务器。我看到的是,当我发送 ping 时,只有一个客户端收到它。当我第一次运行此代码并发送“ping”时,我收到:
当我再次运行它时,我得到
这是为什么?我想发送一个“ping”并接收两个 pong。
这是代码:
编辑
我找到了一种方法来完成这项工作。我真的希望有另一种方法,因为我真的很讨厌这个!所以看起来经销商以循环方式发送给客户。因此,为了使我的 ping 正常工作,我必须将其发送给所有客户。如何?我订阅了监视器套接字并将每个连接的客户端添加到列表中。每次我ping,我ping每个客户。看:
python - PyZMQ PUSH 套接字不会在 send() 上阻塞
ZMQ 套接字文档中的ZMQ_PUSH
部分说,调用没有下游节点的 PUSH 套接字应该阻塞,直到至少有一个节点可用。send()
但是,运行以下代码似乎不会阻止send()
. 此外,在我运行匹配的 PULL 套接字并接收到消息之前,该进程不会退出:
输出:
我是否遗漏了什么,或者这是 PyZmq 中的错误?
版本信息:Windows 7、Python 2.7、PyZMQ 14.0.1
编辑
经过一番摆弄,似乎如果我替换sender.connect('tcp://localhost:5555)
为sender.bind('tcp://127.0.0.1:5555)
,它会按预期工作。不过,不确定它是如何相关的。
python - 如何避免高cpu使用率?
我创建了一个zmq_forwarder.py
单独运行的程序,它将消息从应用程序传递到 sockJS 连接,我目前正在研究烧瓶应用程序如何通过 zmq 从 sockJS 接收消息。我正在粘贴我的内容zmq_forwarder.py
。我是 ZMQ 的新手,我不知道为什么每次运行它时,它都会使用 100% 的 CPU 负载。
如您所见,我设置了 4 个套接字。该应用程序连接到端口 5561 以将数据推送到 zmq,并连接到端口 5562 以从 zmq 接收(尽管我仍在弄清楚如何实际设置它以侦听 zmq 发送的消息)。另一方面,sockjs 在 5564 端口从 zmq 接收数据,并在 5563 端口向它发送数据。
我已经阅读了zmq.DONTWAIT
消息的异步和非阻塞接收,所以我添加了它。
有没有办法改进代码,以免 CPU 过载?目标是能够使用 zmq 在烧瓶应用程序和 websocket 之间传递消息。
python - PyZMQ 单向通信
我查看了各种 ZMQ 消息传递模式,但不确定哪种模式适合我的项目。我想做的就是能够连接到服务器并发送命令(客户端永远不会收到任何东西)。在服务器端,我希望能够检查是否有消息,如果有,则处理它,否则继续做其他事情而不阻塞。这样,即使没有连接客户端,服务器也可以继续工作。
那么我应该在 ZMQ 中使用哪种模式来做到这一点?示例代码将不胜感激。
zeromq - 哪个 ZeroMQ 模式是最好的异步套接字对?
我有一个服务器(在亚马逊上运行)和一个连接到它的客户端。建立连接后,客户端和服务器以独占方式相互通信并发送消息。
例如
客户端可能会失去连接并在一段时间后重新连接并恢复消息发送。还有消息顺序的含义是什么?#2 可以在 #1 之前到达吗?
python - 无法在 python 中导入 zmq(安装问题)
我似乎无法在我的 macbook(OSX 10.9.1)上安装 pyzmq
第一个调用是运行:
出现找不到 libzmq 的错误,它似乎尝试编译捆绑版本:
这没有用:
所以我将安装过程中的错误解释为没有 libzmq。按照https://github.com/zeromq/pyzmq/wiki/Building-and-Installing-PyZMQ上的说明,我将其卸载并尝试:
其次是:
我不断收到错误:
不管我做什么。
python - pyzmq Tornado ioloop:如何优雅地处理 KeyboardInterrupt?
我可以在我的 pyzmq 事件循环中捕获一个 KeyboardInterrupt:
但这只会突然停止 ioloop。我想在清理后手动检测 KeyboardInterrupt 并关闭 ioloop。我怎样才能做到这一点?