goRPC 新调度程序已导入且未使用



我正在使用valyala goRPC包。我正在尝试实现此示例:

package main
import (
"errors"
"fmt"
"log"
)
type ExampleDispatcherService struct {
state int
}
func (s *ExampleDispatcherService) Get() int { return s.state }
func (s *ExampleDispatcherService) Set(x int) { s.state = x }
func (s *ExampleDispatcherService) GetError42() (int, error) {
    if s.state == 42 {
    return 0, errors.New("error42")
    }
return s.state, nil
}
func (s *ExampleDispatcherService) privateFunc(string) { s.state = 0 }
func main() {
d := NewDispatcher()
service := &ExampleDispatcherService{
    state: 123,
}
// Register exported service functions
d.AddService("MyService", service)
// Start rpc server serving registered service.
addr := "127.0.0.1:7892"
s := NewTCPServer(addr, d.NewHandlerFunc())
if err := s.Start(); err != nil {
    log.Fatalf("Cannot start rpc server: [%s]", err)
}
defer s.Stop()
// Start rpc client connected to the server.
c := NewTCPClient(addr)
c.Start()
defer c.Stop()
// Create client wrapper for calling service functions.
dc := d.NewServiceClient("MyService", c)
res, err := dc.Call("Get", nil)
fmt.Printf("Get=%+v, %+vn", res, err)
service.state = 456
res, err = dc.Call("Get", nil)
fmt.Printf("Get=%+v, %+vn", res, err)
res, err = dc.Call("Set", 78)
fmt.Printf("Set=%+v, %+v, %+vn", res, err, service.state)
res, err = dc.Call("GetError42", nil)
fmt.Printf("GetError42=%+v, %+vn", res, err)
service.state = 42
res, err = dc.Call("GetError42", nil)
fmt.Printf("GetError42=%+v, %+vn", res, err)
}

但是当我尝试构建它时,我遇到了此错误:

PS C:WorkgoRPC> go build .prueba1.go
# command-line-arguments
.prueba1.go:27: undefined: NewDispatcher
.prueba1.go:38: undefined: NewTCPServer
.prueba1.go:45: undefined: NewTCPClient

我添加了软件包import "github.com/valyala/gorpc"但现在出现此错误:

# command-line-arguments
.prueba1.go:7: imported and not used: "git
.prueba1.go:29: undefined: NewDispatcher
.prueba1.go:40: undefined: NewTCPServer
.prueba1.go:47: undefined: NewTCPClient

我知道这是对golang的菜鸟怀疑,但我对该怎么做一无所知。

谢谢你的时间。

尝试使用导入前缀限定标识符以使其定义

d := gorpc.NewDispatcher()

最新更新