2 回答
TA贡献1810条经验 获得超4个赞
编程语言能够相互通信——是的,你可以用 Go 编写一个服务器,用 Python 编写一个客户端,并让它们相互通信。
如果您尝试使用原始套接字进行通信,请查看所需语言的文档并确保序列化数据在结构上匹配。
例如,您可以决定一个结构并在Python或代码中实现您的有效负载,然后在Go 中匹配该结构(Go中可能有更好的/stdlib 方式;我对这种语言的经验不是很丰富)。担心这些细节的潜在维护和实现头痛是人们使用更高级别协议的原因——这正是 ZeroMQ 的一个很好的用例。
如果您使用消息队列作为操作的主干,只需将其用作共享协议即可。如果您的 Python 代码可以与 ZeroMQ 对话,那么它就在正确地完成它的工作——您的 Go 代码不需要知道它正在与 Python 对话。
在这种情况下,您的新Go 服务器将绑定到 ZeroMQ,您的Python 客户端将绑定到 ZeroMQ,并且您的两种异构语言不需要相互了解。
TA贡献1871条经验 获得超8个赞
这有点晚了,但我在尝试找到 golang-to-python 0mq 实现时发现了这篇文章。
在我的 golang 代码中,我刚刚更改zmq为zmq4,一切都对我有用:
import (
zmq4 "github.com/pebbe/zmq4"
)
func main() {
ctx, _ := zmq4.NewContext()
sock, _ := ctx.NewSocket(zmq4.REQ)
sock.Connect("tcp://localhost:57000")
sock.Send("simple message", 0)
}
- 2 回答
- 0 关注
- 237 浏览
添加回答
举报