pb_ping.go 537 B

1234567891011121314151617181920212223242526272829
  1. package process
  2. import (
  3. "ehang.io/nps/lib/enet"
  4. "ehang.io/nps/lib/pb"
  5. "time"
  6. )
  7. type PbPingProcessor struct {
  8. DefaultProcess
  9. }
  10. func (pp *PbPingProcessor) GetName() string {
  11. return "pb_ping"
  12. }
  13. func (pp *PbPingProcessor) ProcessConn(c enet.Conn) (bool, error) {
  14. m := &pb.ClientRequest{}
  15. _, err := pb.ReadMessage(c, m)
  16. if err != nil {
  17. return false, nil
  18. }
  19. if _, ok := m.ConnType.(*pb.ClientRequest_Ping); !ok {
  20. return false, nil
  21. }
  22. m.GetPing().Now = time.Now().String()
  23. _, err = pb.WriteMessage(c, m)
  24. return true, err
  25. }