Skip to content

Commit 350e527

Browse files
committed
use jsonrpc codec
1 parent 77a9fa9 commit 350e527

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

pkg/rpc/rpc.go

+14-4
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ package rpc
22

33
import (
44
"errors"
5+
"log"
56
"net"
6-
"net/http"
77
"net/rpc"
8+
"net/rpc/jsonrpc"
89

910
"github.com/multiverse-vcs/go-multiverse/pkg/remote"
1011
"github.com/multiverse-vcs/go-multiverse/pkg/rpc/repo"
@@ -27,19 +28,28 @@ type Service struct {
2728

2829
// NewClient returns a new RPC client.
2930
func NewClient() (*rpc.Client, error) {
30-
return rpc.DialHTTP("tcp", SocketAddr)
31+
return jsonrpc.Dial("tcp", SocketAddr)
3132
}
3233

3334
// ListenAndServe starts the RPC listener.
3435
func ListenAndServe(server *remote.Server) error {
3536
rpc.RegisterName("Remote", &Service{server})
3637
rpc.RegisterName("Repo", &repo.Service{server})
37-
rpc.HandleHTTP()
3838

3939
listen, err := net.Listen("tcp", SocketAddr)
4040
if err != nil {
4141
return err
4242
}
43+
defer listen.Close()
4344

44-
return http.Serve(listen, nil)
45+
for {
46+
conn, err := listen.Accept()
47+
if err != nil {
48+
log.Fatal(err)
49+
}
50+
51+
go jsonrpc.ServeConn(conn)
52+
}
53+
54+
return nil
4555
}

0 commit comments

Comments
 (0)