Poor compatibility with C++
h12w opened this issue · comments
I tried to make a client with go-thrift and communicate with C++ server, however after the client connects to the server, it just hangs there and never return. Though go-thrift is cleaner, I have to switch to thrift4go now. Hopefully go-thrift will add more compatibility tests and become better in the future.
I can assure you it's compatible :)
The most likely reason for the hang is that the C++ server side is using a framed transport and the Go side isn't. When building the Go client you should set framed to true ( see http://godoc.org/github.com/samuel/go-thrift#Dial ). Let me know if that solves the problem.
Actually it works when I set framed to "false" like this: client, err := thrift.Dial("tcp", "127.0.0.1:9090", false, thrift.NewBinaryProtocol(true, false), false). And when I set it to "true" it hangs again. Anyway it works, thanks!
Awesome, glad it worked out.