Skip to content

Commit 717f79e

Browse files
committed
Update
1 parent 71baf8c commit 717f79e

File tree

1 file changed

+67
-5
lines changed

1 file changed

+67
-5
lines changed

README.md

Lines changed: 67 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,86 @@ go get github.com/hyperf/roc
1010

1111
## How to use
1212

13+
- action/foo_save_action.go
14+
15+
```go
16+
package action
17+
18+
import (
19+
"fmt"
20+
"github.com/hyperf/roc"
21+
"github.com/hyperf/roc/exception"
22+
"github.com/hyperf/roc/formatter"
23+
"github.com/hyperf/roc/serializer"
24+
)
25+
26+
type FooSaveAction struct {
27+
}
28+
29+
type FooSaveInput struct {
30+
Name string `json:"name"`
31+
Gender int `json:"gender"`
32+
}
33+
type FooSaveRequest struct {
34+
ID int `json:"0"`
35+
Input FooSaveInput `json:"1"`
36+
}
37+
type FooSaveResult struct {
38+
IsSuccess bool `json:"is_success"`
39+
}
40+
41+
func (f *FooSaveAction) Handle(packet *roc.Packet, serializer serializer.SerializerInterface) (any, exception.ExceptionInterface) {
42+
request := &formatter.JsonRPCRequest[*FooSaveRequest, any]{}
43+
44+
serializer.UnSerialize(packet.GetBody(), request)
45+
46+
fmt.Println(request)
47+
48+
return &FooSaveResult{
49+
IsSuccess: true,
50+
}, nil
51+
}
52+
```
53+
54+
- main.go
55+
1356
```go
1457
package main
1558

1659
import (
1760
"fmt"
1861
"github.com/hyperf/roc"
62+
"github.com/hyperf/roc/examples/json_rpc/action"
63+
"github.com/hyperf/roc/exception"
64+
"github.com/hyperf/roc/formatter"
65+
"github.com/hyperf/roc/router"
1966
"github.com/hyperf/roc/server"
20-
"net"
2167
)
2268

69+
func SetUpRouters() *router.SimpleRouter {
70+
r := router.NewSimpleRouter()
71+
r.Add("/foo/save", &action.FooSaveAction{})
72+
return r
73+
}
74+
2375
func main() {
24-
serv := server.NewTcpServer("127.0.0.1:9501", func(conn net.Conn, packet *roc.Packet, server *server.TcpServer) {
25-
id := packet.GetId()
26-
body := packet.GetBody()
76+
r := SetUpRouters()
77+
78+
handler := server.NewTcpServerHandler(func(route *formatter.JsonRPCRoute, packet *roc.Packet, server *server.TcpServer) (any, exception.ExceptionInterface) {
79+
80+
fmt.Println(route, packet)
2781

28-
fmt.Println(id, body)
82+
action, ok := r.Routes[route.Path]
83+
if !ok {
84+
return nil, &exception.Exception{Code: 404, Message: "The route is not defined."}
85+
}
86+
87+
return action.Handle(packet, server.Serializer)
2988
})
3089

90+
serv := server.NewTcpServer("127.0.0.1:9501", handler)
91+
3192
serv.Start()
3293
}
94+
3395
```

0 commit comments

Comments
 (0)