问题标签 [pynng]
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.
python-asyncio - pynng:如何在 REP0 套接字上设置并继续使用多个上下文
我正在研究一个“服务器”线程,它负责处理一些“客户端”的 IO 调用。
通信是使用pynng v0.5.0完成的,服务器有自己的asyncio循环。
每个客户端通过发送第一个请求来“注册”,然后循环接收结果并发送回 READY 消息。
在服务器上,目标是将每个客户端的第一条消息视为注册请求,并创建一个专用的工作任务,该任务将循环执行 IO 工作,发送结果并等待该特定客户端的 READY 消息。
为了实现这一点,我试图利用 REP0 套接字的上下文特性。
旁注
问题:
经过几次迭代,一些 READY 消息被服务器的注册协程拦截,而不是被路由到正确的 worker 任务。
由于我无法共享代码,因此我为我的问题编写了一个复制器并将其包含在下面。
更糟糕的是,正如您在输出中看到的,一些结果消息被发送到错误的客户端 ( ERROR:root:<Worker 1>: worker/client mismatch, exiting.
)。
它看起来像一个错误,但我不完全确定我理解如何正确使用上下文,所以任何帮助将不胜感激。
环境:
- winpython-3.8.2
- pynng v0.5.0+dev (46fbbcb2),带有nng v1.3.0 (ff99ee51)
代码:
输出:
编辑(2020-04-10):将 pynng 和底层 nng.lib 更新到最新版本(主分支),仍然是同样的问题。
python - nng 到 pynng 的通信不起作用
我正在尝试制作一个通过 nng 发布图像的 c 程序服务器,以及一个通过 pynng 订阅图像的 python 客户端。
出于某种原因,我无法连接这两个部分,我不知道为什么。C/C++ 程序编译和运行良好,python 程序也是如此,但是在 C/C++ 程序上发布了一些内容,在 python 客户端上没有收到任何内容。客户端和服务器在同一台机器上运行。这是我的服务器 C/C++ 代码:
这是我的客户端python代码:
有人可以帮我理解为什么这不起作用吗?
python - nng 到 pynng 发布/订阅。客户未收到任何消息
我有以下服务器(C++):
以及以下客户端(python):
我不明白为什么没有消息到达客户端。我已经设置了主题和 recv_max_size 但仍然没有消息到达客户端。我现在在这里做错了什么?
python - 使 pynng 和 socket 相互通信
TL;博士
我使用启动服务器pynng
,然后来自 Python 标准库的客户端socket
将尝试向它发送消息。
问题是客户端可以发送消息,但服务器没有注意到它。因此,它不起作用。
我错过了什么吗?一些低级协议设置?一些终止字符?
我这样做的原因是我将构建一个pynng
用作服务器的 Python 脚本。然后一个非 Python 程序(我假设它具有基本 TCP 协议的知识)将尝试与这个 Python 服务器通信。因此,我正在使用恕我直言,我可以操作的最原始的套接字库,socket
标准库中的模块。
细节
我将在讨论时展示代码片段,但我将在最后展示完整的最小代码示例。
我正在尝试使用pynng
然后,看起来像这样的客户端将尝试连接到它:
我把它们放在一起使用threading
:
最低工作代码
总而言之,这是最低限度的工作代码:
然后我在终端中运行它
似乎server
无法发送recv
消息,recv
因此尝试在 10000 毫秒时超时。
python - 使用 pynn 进行简单的配对通信
我正在尝试使用pynng建立一个非常简单的配对通信,但是当通过 TCP 从不同的设备发送时,侦听实例似乎从未收到任何消息。
客户端.py
服务器.py
所以真的我只是想在这里向服务器发送任何东西,但它从来没有收到任何东西。我在这里想念什么?
tcp - NNG(Nano Message Next Generation)是否会定期自动传输一些心跳?
我使用 NNG 作为我的服务器间消息队列。
背景:
- 我正在实现一对长时间的后台服务,它们正在与 NNG 通信;
- 协议:pair0@tcp;
- 有效载荷消息可能会出现一秒钟,也可能是一天;
我的问题: 如果在特定时间段内没有产生消息,NNG 是否会自动定期向每个对等方发送“心跳”消息以保持 TCP 连接处于活动状态?
如果不是,我应该自己做“心跳”吗?
顺便说一句,这是我第一次使用 NNG。我不知道是否有它的官方/人口支持论坛,所以我在这里问我的问题。如果存在这样的论坛,请。告诉我。谢谢!