gpt4 book ai didi

python - pyzmq: ROUTER 套接字是否有类似 "sendto"的函数的快捷方式?

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:31 24 4
gpt4 key购买 nike

我有一个ROUTER套接字,它接受请求,执行一些工作并发回响应:

import zmq

context = zmq.Context()
socket = context.socket(zmq.ROUTER)
socket.bind("tcp://*:1234")
sender, _, content = socket.recv_multipart()
reply = do_some_work(content) # Do something with the message
socket.send_multipart((sender, "", reply))

发送响应时,中间的空字符串感觉很愚蠢,尽管我知道 ZeroMQ 需要它来将身份与内容分开。

我希望高级语言绑定(bind)(例如 pyzmq)能够有一个函数来包装它并提供更清晰、更不易出错的 API。

我可以想象这样的事情:

socket.sendto(identity, content)

它会为我添加空框架。

那么 - 有类似的事情吗?

最佳答案

嗯,据我所知,不,没有。

<小时/>

原因1)
恕我直言,身份/安全/...概念在我看来是一种事后附加组件,可以轻松地将这些附加组件的多框架组合的概念重新使用到已经成熟的 API + 无数大量此类 API 语言绑定(bind),其中一些可能有,一些可能没有任何类似级别的语法自由度,例如类似地美化调用原始 ZeroMQ 核心公开的 API 服务的方式。人们应该以某种方式尊重 ZeroMQ 长期成功运行的演变,他们灌输的组织方面在实现 RFC 规范方面达成共识并遵守,并管理端到端开发流程,该流程从 API v 2.1 跨越了很多年迄今为止,已经经历了许多设计和技术引发的转变,最近核心 API v 4.2.2 已稳定投入生产。

原因2)
OOD/OOP 布道者会让你很快修改你的观点,期望其他人为你做这件事,一旦你想象出关于请求拥有一个
socket.sendto(identity, content ) 特定于自定义的方法论证基于您自己的舒适度观点(参见上面) - 因为这是使用适当工具的非常明显的情况 - 子类化 - 然后添加您自己的专用方法,该方法扩展了通用父类(super class)行为并添加了您希望获得的舒适度,所有这些都在您的控制之下。

<小时/>

无论如何,请享受 ZeroMQ 的强大功能,因为它可以在设计高级可扩展分布式异构非阻塞信令/消息传递系统的许多方面帮助您。 G/L 踏上疯狂而创新的旅程!

关于python - pyzmq: ROUTER 套接字是否有类似 "sendto"的函数的快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46898336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com