我必须添加
与另一台服务器通信。不幸的是,所有要求都无法更改。
我有提供解决方案一部分的库和示例代码,但我无法将它们全部放在一起。
我看过以太坊(找不到客户示例)Ethereum rpc
一个拨打tcp的stackoverflow question。
net.rpc not 2.0, dials tcp
通过http net/rpc and http
This one看起来很有希望,但我无法让客户满意。
type Params struct {
Name string `json:"name"`
}
func main() {
h := NewRPCHandler()
h.Register("some_handler", dummySuccessHandler)
ts := http.Server{Handler: h}
defer ts.Close()
conn, _, err := websocket.DefaultDialer.Dial("ws://127.0.0.1:8080/ws_rpc", nil)
if err != nil {
log.Printf("Error dialing %v", err)
}
client := jsonrpc.NewClient(conn.UnderlyingConn())
par := &Params{"newuser"}
req, err := json.Marshal(&par)
if err != nil {
log.Printf("Bad marshal %#v", err)
}
var resp Result
err = client.Call("some_handler", &req, &resp)
我尝试过/不进行封送,但是我在这里抓着稻草。