hprose / hprose-golang

Hprose is a cross-language RPC. This project is Hprose for Golang.
MIT License
1.26k stars 205 forks source link

Golang服务端发布实例方法,dotnet客户端调用的问题 #101

Closed czyt closed 3 years ago

czyt commented 3 years ago

Golang服务端代码如下

package main

import (
    "log"
    "net"

    "github.com/hprose/hprose-golang/v3/rpc"
)

type DeviceInvoker interface {
    GetDeviceName()[]byte
    GetDeviceProto()[]byte
}

type FakeDevice struct {}

func (f FakeDevice) GetDeviceName() []byte {
    return []byte("Test Device")
}

func (f FakeDevice) GetDeviceProto() []byte {
    return []byte("Test Proto")
}

func main() {
    service := rpc.NewService()
    service.Codec = rpc.NewServiceCodec(rpc.WithDebug(true))
    service.AddInstanceMethods(&FakeDevice{})
    server, err := net.Listen("tcp", "127.0.0.1:8412")
    if err != nil {
        log.Fatalln(err)
    }
    defer server.Close()
    err = service.Bind(server)
    if err != nil {
        log.Fatalln(err)
    }
    for  {

    }
}

疑问如下

andot commented 3 years ago

在 dotnet 里面使用 public 的 interface 就可以了。

czyt commented 3 years ago

在 dotnet 里面使用 public 的 interface 就可以了。

谢谢,确实是接口定义的作用域问题。已经解决