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 關注
- 283 瀏覽
添加回答
舉報