https://github.com/rocket049/go-jsonrpc2glib
help `github.com/powerman/rpc-codec/jsonrpc2` create server compatibly jsonrpc-glib-1.0
https://github.com/rocket049/go-jsonrpc2glib
go jsonrpc-glib rpc
Last synced: 3 months ago
JSON representation
help `github.com/powerman/rpc-codec/jsonrpc2` create server compatibly jsonrpc-glib-1.0
- Host: GitHub
- URL: https://github.com/rocket049/go-jsonrpc2glib
- Owner: rocket049
- License: lgpl-2.1
- Created: 2018-12-14T04:10:21.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-06-17T03:23:48.000Z (almost 7 years ago)
- Last Synced: 2024-06-20T08:18:40.867Z (almost 2 years ago)
- Topics: go, jsonrpc-glib, rpc
- Language: Go
- Size: 21.5 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- License: LICENSE
Awesome Lists containing this project
README
# go-jsonrpc2glib
Help developer create server compatibly `jsonrpc-glib-1.0` .
Use `github.com/powerman/rpc-codec/jsonrpc2` inside.
帮助程序员开发兼容`jsonrpc-glib-1.0`的`jsonrpc2`服务器。
### Install
`go get github.com/rocket049/go-jsonrpc2glib`
### Example:
```
//server.go
package main
import (
"fmt"
"log"
"net"
"net/rpc"
"os"
"os/signal"
"strings"
"github.com/rocket049/go-jsonrpc2glib"
)
type Arith int
type ParamsT struct {
Arg string
}
func (t *Arith) Hello(args []string, reply *string) error {
*reply = strings.Join(args, "\n")
return nil
}
func main() {
arith := new(Arith)
rpc.Register(arith)
l, e := net.Listen("tcp", "127.0.0.1:6666")
defer l.Close()
if e != nil {
log.Fatal("listen error:", e)
}
for {
conn, err := l.Accept()
if err != nil {
log.Println(err)
}
go jsonrpc2glib.ServeGlib(conn, nil)
}
waitSig()
}
func waitSig() {
var c chan os.Signal = make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt, os.Kill)
s := <-c
fmt.Println("\nSignal:", s)
}
//client.vala
//valac --pkg jsonrpc-glib-1.0 jsonclient.vala
using Jsonrpc;
owned SocketConnection rpcConnect(string host,uint16 port){
Resolver resolver = Resolver.get_default ();
List addresses = resolver.lookup_by_name (host, null);
InetAddress address = addresses.nth_data (0);
SocketClient client = new SocketClient ();
SocketConnection conn = client.connect(new InetSocketAddress (address, port));
return conn;
}
void rpcClient(SocketConnection conn){
var c = new Jsonrpc.Client(conn);
string[] v = {"Hello friend.","无限恐怖","abcde"};
var params = new Variant.strv(v);
Variant res;
try{
for (int i=0;i<5;i++){
var ok = c.call("Arith.Hello",params,null,out res);
if(ok){
stdout.printf("%s\n",res.get_string());
}else{
stdout.printf("error\n");
}
}
}catch (Error e) {
stdout.printf ("Error: %s\n", e.message);
}
conn.close();
}
void main(){
var conn = rpcConnect("localhost",6666);
rpcClient(conn);
stdout.printf("end\n");
}
```
*end*