feat: implement http support

Signed-off-by: Kairee Wu <kaireewu@gmail.com>
This commit is contained in:
2022-04-23 17:34:50 +08:00
parent 74ef998a9b
commit 4477a63c49
6 changed files with 150 additions and 4 deletions

View File

@ -4,6 +4,7 @@ import (
"context"
"log"
"net"
"net/http"
"sync"
"krwu.top/krpc.v1"
@ -14,6 +15,7 @@ func startServer(addr chan string) {
if err := krpc.Register(&foo); err != nil {
log.Fatal("register error: ", err)
}
krpc.HandleHTTP()
// pick a free port
l, err := net.Listen("tcp", ":0")
if err != nil {
@ -21,7 +23,8 @@ func startServer(addr chan string) {
}
log.Println("start rpc server on", l.Addr())
addr <- l.Addr().String()
krpc.Accept(l)
_ = http.Serve(l, nil)
//krpc.Accept(l)
}
func main() {
@ -29,7 +32,7 @@ func main() {
addr := make(chan string)
go startServer(addr)
cli, _ := krpc.Dial("tcp", <-addr)
cli, _ := krpc.DialHTTP("tcp", <-addr)
defer func() { _ = cli.Close() }()
// send options