Я закодировал простой сервер JSONRPC для тестирования возможностей Go, но я застрял, всегда получая пустой результат, без ошибок и правильного идентификатора. У меня есть следующий код: Перейти пакета главногоСервер JSONRPC возвращает пустой результат
import (
"log"
"net"
"net/rpc"
"net/rpc/jsonrpc"
)
type Experiment int
func (e *Experiment) Test(i *string, reply *string) error {
s := "Hello, " + *i
reply = &s
log.Println(s, reply)
return nil
}
func main() {
exp := new(Experiment)
server := rpc.NewServer()
server.Register(exp)
l, err := net.Listen("tcp", ":1234")
if err != nil {
log.Fatal("listen error:", err)
}
for {
conn, err := l.Accept()
if err != nil {
log.Fatal(err)
}
server.ServeCodec(jsonrpc.NewServerCodec(conn))
}
}
Независимо от того, что я пытался, я всегда получил следующий ответ:
{"id":1,"result":"","error":null}
Logging показывает, что все работает, как и должно быть в сервер.
2013/07/17 15:17:13 Hello, Paulo 0xc200090ac0
Любые идеи о том, что происходит? Я использую последнюю стабильную версию Go, v1.1.1
Благодаря
Хм, это здорово! Я должен немного изучить указатели, так как это мой первый набег на языке с этим. Пока я не могу продвинуться, но позже. Спасибо, что нашли время, чтобы объяснить! – Paulo