(stream *Stream, tid int)
| 559 | } |
| 560 | |
| 561 | func (s *ClientSession) doResultMessage(stream *Stream, tid int) error { |
| 562 | switch tid { |
| 563 | case tidClientConnect: |
| 564 | _, err := stream.msg.readObjectWithType() |
| 565 | if err != nil { |
| 566 | return err |
| 567 | } |
| 568 | infos, err := stream.msg.readObjectWithType() |
| 569 | if err != nil { |
| 570 | return err |
| 571 | } |
| 572 | code, err := infos.FindString("code") |
| 573 | if err != nil { |
| 574 | return err |
| 575 | } |
| 576 | switch code { |
| 577 | case "NetConnection.Connect.Success": |
| 578 | Log.Infof("[%s] < R _result(\"NetConnection.Connect.Success\").", s.UniqueKey()) |
| 579 | Log.Infof("[%s] > W createStream().", s.UniqueKey()) |
| 580 | if err := s.packer.writeCreateStream(s.conn); err != nil { |
| 581 | return err |
| 582 | } |
| 583 | default: |
| 584 | Log.Errorf("[%s] unknown code. code=%v", s.UniqueKey(), code) |
| 585 | } |
| 586 | case tidClientCreateStream: |
| 587 | err := stream.msg.readNull() |
| 588 | if err != nil { |
| 589 | return err |
| 590 | } |
| 591 | sid, err := stream.msg.readNumberWithType() |
| 592 | if err != nil { |
| 593 | return err |
| 594 | } |
| 595 | Log.Infof("[%s] < R _result().", s.UniqueKey()) |
| 596 | switch s.sessionStat.BaseType() { |
| 597 | case base.SessionBaseTypePushStr: |
| 598 | Log.Infof("[%s] > W publish('%s').", s.UniqueKey(), s.streamNameWithRawQuery()) |
| 599 | if err := s.packer.writePublish(s.conn, s.appName(), s.streamNameWithRawQuery(), sid); err != nil { |
| 600 | return err |
| 601 | } |
| 602 | case base.SessionBaseTypePullStr: |
| 603 | Log.Infof("[%s] > W play('%s').", s.UniqueKey(), s.streamNameWithRawQuery()) |
| 604 | if err := s.packer.writePlay(s.conn, s.streamNameWithRawQuery(), sid); err != nil { |
| 605 | return err |
| 606 | } |
| 607 | } |
| 608 | default: |
| 609 | Log.Errorf("[%s] unknown tid. tid=%d", s.UniqueKey(), tid) |
| 610 | } |
| 611 | return nil |
| 612 | } |
| 613 | func (s *ClientSession) doProtocolControlMessage(stream *Stream) error { |
| 614 | if stream.msg.Len() < 4 { |
| 615 | return base.NewErrRtmpShortBuffer(4, int(stream.msg.Len()), "ClientSession::doProtocolControlMessage") |
no test coverage detected