我有一个用例,我希望有一个ZeroMQ请求/回复套接字'流'返回结果,这是否可能使用MultiPart消息(即回复套接字在HasMore = false之前将帧流回来?)或我是接近这个错误?
情况:
1)客户端对某些记录进行查询(Request)
2)服务器查找数据库中的结果,并以当前大量记录(回复)分成帧进行响应
3)服务器必须等到发送最终帧之前生成服务器端事件(HasMore = false)
4)客户端在生成最终事件并且HasMore = false之前不会获得前面的帧
感谢您的帮助。
答案 0 :(得分:1)
据我了解你的目标,听起来你所拥有的将按你期望的方式工作。 See here for more discussion on message frames。重点:
HasMore
设置为false
。我主要假设你要找的是一种在发送之前迭代建立消息的方法吗?或许也可以迭代地处理客户端上的数据?此外,您可以保证不会丢失中间的部分数据,您可以获得整个消息或丢失整个消息(而不是将每个帧作为单独的消息发送)。这是框架的主要用例之一,所以你做得很好。
我唯一反对的是使用“流”这个词,因为这意味着数据在服务器上处理时会不断地发送给客户端,这显然不是你想要做的事情( ZMQ消息帧也不可能。)