The controller is currently streaming out a streamed message.
The controller is currently streaming out a streamed message. This state does not keep track of whether the underlying socket buffer is full or not.
The controller is in the middle of writing a single message.
The controller is in the middle of writing a single message. This state only occurs when the message was too large to write in one call, and we're waiting for the socket's underlying buffer to clear out before writing the rest
The controller is not in the middle of writing a message and is actively dequeuing pending messages.
The controller is not in the middle of writing a message and is actively dequeuing pending messages. This is the normal state when it is writing non-streamed messages and the entire message is written in one call to write
In this state, the controller is effectively disabled.
In this state, the controller is effectively disabled. This generally only occurs once the underlying connection has been disconnected. Be aware that it is possible for a controller to re-establish a connection, so Terminated is not necessarily an end state.