45 lines
767 B
Go
45 lines
767 B
Go
package rpcsup
|
|
|
|
import (
|
|
"dashboard/logger"
|
|
"net"
|
|
"net/rpc"
|
|
"net/rpc/jsonrpc"
|
|
)
|
|
|
|
func JsonServer(log *logger.Logger, address string, service interface{}) error {
|
|
if err := rpc.Register(service); err != nil {
|
|
log.Sugar().Error(err)
|
|
return err
|
|
}
|
|
|
|
listen, err := net.Listen("tcp", address)
|
|
if err != nil {
|
|
log.Sugar().Error(err)
|
|
return err
|
|
}
|
|
|
|
log.Sugar().Infof("Rpc server listen on: %s", address)
|
|
|
|
for {
|
|
accept, err := listen.Accept()
|
|
if err != nil {
|
|
log.Sugar().Error(err)
|
|
continue
|
|
}
|
|
|
|
jsonrpc.ServeConn(accept)
|
|
}
|
|
}
|
|
|
|
func JsonClient(log *logger.Logger, address string) (*rpc.Client, error) {
|
|
dial, err := net.Dial("tcp", address)
|
|
if err != nil {
|
|
log.Sugar().Error(err)
|
|
|
|
return nil, err
|
|
}
|
|
|
|
return jsonrpc.NewClient(dial), nil
|
|
}
|