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.
 
 
 
 
kratos/examples/stream/service/hello.go

60 lines
1.0 KiB

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
}
}
}