samuel / go-thrift

A native Thrift package for Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.