https://github.com/issue9/jsonrpc
json rpc 2.0 over HTTP/Socket/Websocket
https://github.com/issue9/jsonrpc
go go-json-rpc golang json json-rpc-client json-rpc-server json-rpc2 rpc
Last synced: 2 months ago
JSON representation
json rpc 2.0 over HTTP/Socket/Websocket
- Host: GitHub
- URL: https://github.com/issue9/jsonrpc
- Owner: issue9
- License: mit
- Created: 2020-01-27T16:57:51.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-28T04:45:54.000Z (about 2 years ago)
- Last Synced: 2025-08-15T04:00:09.067Z (8 months ago)
- Topics: go, go-json-rpc, golang, json, json-rpc-client, json-rpc-server, json-rpc2, rpc
- Language: Go
- Homepage: https://pkg.go.dev/github.com/issue9/jsonrpc?tab=doc
- Size: 103 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
jsonrpc
[](https://github.com/issue9/jsonrpc/actions?query=workflow%3AGo)
[](https://codecov.io/gh/issue9/jsonrpc)
[](https://opensource.org/licenses/MIT)
[](https://pkg.go.dev/github.com/issue9/jsonrpc)
======
JSON RPC 2.0 的实现,目前实现了对以下传输层的接口:
- socket, net 包中所有支持 Conn 接口的实现;
- websocket, 采用了 github.com/gorilla/websocket 作为底层调用;
- HTTP 普通的 HTTP 请求方式;
*目前不支持批处理模式!*
Socket
```go
srv := NewServer()
listen, err := net.Listen("tcp", ":8080")
for {
c, err := listen.Accept()
conn := srv.NewConn(NewSocketTransport(true, c), nil)
conn.Serve(ctx)
// 主动请求客户端
conn.Send("/method", in, func(result *result) error {
// 此处用于处理返回的数据
})
}
```
HTTP
```go
srv := NewServer()
conn := srv.NewHTTPConn(nil)
http.Handle(conn)
```
安装
----
```shell
go get github.com/issue9/jsonrpc
```
版权
----
本项目采用 [MIT](https://opensource.org/licenses/MIT) 开源授权许可证,完整的授权说明可在 [LICENSE](LICENSE) 文件中找到。