You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.0 KiB
59 lines
1.0 KiB
3 years ago
|
package service
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"io"
|
||
|
"time"
|
||
|
|
||
|
pb "github.com/go-kratos/kratos/examples/stream/hello"
|
||
|
)
|
||
|
|
||
|
type HelloService struct {
|
||
|
pb.UnimplementedHelloServer
|
||
|
}
|
||
|
|
||
|
func NewHelloService() *HelloService {
|
||
|
return &HelloService{}
|
||
|
}
|
||
|
|
||
|
func (s *HelloService) GetNumber(req *pb.GetNumberRequest, conn pb.Hello_GetNumberServer) error {
|
||
|
var number int64
|
||
|
for {
|
||
|
fmt.Println(req.Data)
|
||
|
err := conn.Send(&pb.GetNumberReply{Number: number})
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
number++
|
||
|
time.Sleep(time.Second)
|
||
|
}
|
||
|
}
|
||
|
func (s *HelloService) UploadLog(conn pb.Hello_UploadLogServer) error {
|
||
|
for {
|
||
|
req, err := conn.Recv()
|
||
|
if err == io.EOF {
|
||
|
return conn.SendAndClose(&pb.UploadLogReply{Res: "ok"})
|
||
|
}
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
fmt.Println(req.Log)
|
||
|
}
|
||
|
}
|
||
|
func (s *HelloService) Chat(conn pb.Hello_ChatServer) error {
|
||
|
for {
|
||
|
req, err := conn.Recv()
|
||
|
if err == io.EOF {
|
||
|
return nil
|
||
|
}
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
err = conn.Send(&pb.ChatReply{DownMsg: "hello " + req.UpMsg})
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
}
|
||
|
}
|