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.
60 lines
1.0 KiB
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
|
|
}
|
|
}
|
|
}
|
|
|