winlin

add bandwidth workflow

@@ -131,6 +131,35 @@ Stream Architecture: @@ -131,6 +131,35 @@ Stream Architecture:
131 | ...) | +-> DVR --------------+-> FILE | 131 | ...) | +-> DVR --------------+-> FILE |
132 +-----------+-------------------------+----------------+ 132 +-----------+-------------------------+----------------+
133 </pre> 133 </pre>
  134 +Bandwidth Test Workflow:
  135 +<pre>
  136 + +------------+ +----------+
  137 + | Client | | Server |
  138 + +-----+------+ +-----+----+
  139 + | |
  140 + | connect vhost------> | if vhost enable bandwidth,
  141 + | <-----result(success) | do bandwidth check.
  142 + | |
  143 + | <----call(start play) | onSrsBandCheckStartPlayBytes
  144 + | result(playing)-----> | onSrsBandCheckStartingPlayBytes
  145 + | <-------data(playing) | onSrsBandCheckStartingPlayBytes
  146 + | <-----call(stop play) | onSrsBandCheckStopPlayBytes
  147 + | result(stopped)-----> | onSrsBandCheckStoppedPlayBytes
  148 + | |
  149 + | <-call(start publish) | onSrsBandCheckStartPublishBytes
  150 + | result(publishing)--> | onSrsBandCheckStartingPublishBytes
  151 + | data(publishing)----> | onSrsBandCheckStartingPublishBytes
  152 + | <--call(stop publish) | onSrsBandCheckStopPublishBytes
  153 + | result(stopped)(1)--> | onSrsBandCheckStoppedPublishBytes
  154 + | |
  155 + | <--------------report |
  156 + | final(2)------------> | finalClientPacket
  157 + | <END> |
  158 +1. when flash client, server ignore the publish stopped result,
  159 + and directly send the report to flash client.
  160 +2. flash client only. when got report, flash client should send out
  161 + a final packet and close the connection immediately.
  162 +</pre>
134 163
135 ### System Requirements 164 ### System Requirements
136 Supported operating systems and hardware: 165 Supported operating systems and hardware:
@@ -57,10 +57,10 @@ class SrsRtmp; @@ -57,10 +57,10 @@ class SrsRtmp;
57 * | result(publishing)--> | onSrsBandCheckStartingPublishBytes 57 * | result(publishing)--> | onSrsBandCheckStartingPublishBytes
58 * | data(publishing)----> | onSrsBandCheckStartingPublishBytes 58 * | data(publishing)----> | onSrsBandCheckStartingPublishBytes
59 * | <--call(stop publish) | onSrsBandCheckStopPublishBytes 59 * | <--call(stop publish) | onSrsBandCheckStopPublishBytes
60 -* | result(stopped)-----> | onSrsBandCheckStoppedPublishBytes(1) 60 +* | result(stopped)(1)--> | onSrsBandCheckStoppedPublishBytes
61 * | | 61 * | |
62 * | <--------------report | 62 * | <--------------report |
63 -* | final---------------> | finalClientPacket(2) 63 +* | final(2)------------> | finalClientPacket
64 * | <END> | 64 * | <END> |
65 * 1. when flash client, server ignore the publish stopped result, 65 * 1. when flash client, server ignore the publish stopped result,
66 * and directly send the report to flash client. 66 * and directly send the report to flash client.