Go 如何使用protobuf二进制文件在PUB/SUB(ZeroMQ)中进行过滤?
我使用Go、ZeroMQ和protobuf来编写微服务 ZeroMQ具有Go 如何使用protobuf二进制文件在PUB/SUB(ZeroMQ)中进行过滤?,go,protocol-buffers,zeromq,Go,Protocol Buffers,Zeromq,我使用Go、ZeroMQ和protobuf来编写微服务 ZeroMQ具有PUB/SUB原型。(zmq4Go中的lib)。如何在带有二进制protobuf消息的SUB消息中使用筛选器 例如,我的原型消息: syntax=“proto3” 我想筛选值为userId的SUB客户端的消息: listener.SetSubscribe("42") // <-string not working. listener.SetSubscribe(“42”)/我知道了: listene
PUB/SUB
原型。(zmq4
Go中的lib)。如何在带有二进制protobuf消息的SUB
消息中使用筛选器
例如,我的原型消息:
syntax=“proto3”
我想筛选值为userId
的SUB
客户端的消息:
listener.SetSubscribe("42") // <-string not working.
listener.SetSubscribe(“42”)/我知道了:
listener.SetSubscribe( string( []byte{ 10, 2 } ) + "42" )
您可能已经注意到,除非Go绑定执行一些幕后魔术,否则本机ZeroMQ API将在消息负载的左侧对设置的主题字符串进行纯二进制匹配。这不需要,但可能会与消息有效负载所遵循的某些(protobuf或其他协议相关)组合发生冲突,因此不要忘记,底层API只不过是针对任何当前项进行左对齐的字符串-(字节)-匹配,存储在设置的主题字符串列表的实际状态中。不管怎么说,享受禅宗的力量ZeroMQ@user3666197谢谢你的评论
listener.SetSubscribe( string( []byte{ 10, 2 } ) + "42" )