Websocket上的客户端JSON-RPC2.0所需的Golang库(或代码)

时间:2019-04-19 11:17:37

标签: json go websocket client json-rpc

我必须添加

  1. JSON-RPC2.0
  2. 通过网络套接字访问我的
  3. Golang
  4. 客户流程

与另一台服务器通信。不幸的是,所有要求都无法更改。

我有提供解决方案一部分的库和示例代码,但我无法将它们全部放在一起。

我看过以太坊(找不到客户示例)Ethereum rpc

一个拨打tcp的stackoverflow question

dials TCP

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)

我尝试过/不进行封送,但是我在这里抓着稻草。

0 个答案:

没有答案