in src/datachannel/streaming.go [404:431]
func (dataChannel *DataChannel) OutputMessageHandler(log log.T, stopHandler Stop, sessionID string, rawMessage []byte) error {
outputMessage := &message.ClientMessage{}
err := outputMessage.DeserializeClientMessage(log, rawMessage)
if err != nil {
log.Errorf("Cannot deserialize raw message: %s, err: %v.", string(rawMessage), err)
return err
}
if err = outputMessage.Validate(); err != nil {
log.Errorf("Invalid outputMessage: %v, err: %v.", *outputMessage, err)
return err
}
log.Tracef("Processing stream data message of type: %s", outputMessage.MessageType)
switch outputMessage.MessageType {
case message.OutputStreamMessage:
return dataChannel.HandleOutputMessage(log, *outputMessage, rawMessage)
case message.AcknowledgeMessage:
return dataChannel.HandleAcknowledgeMessage(log, *outputMessage)
case message.ChannelClosedMessage:
dataChannel.HandleChannelClosedMessage(log, stopHandler, sessionID, *outputMessage)
case message.StartPublicationMessage, message.PausePublicationMessage:
return nil
default:
log.Warn("Invalid message type received: %s", outputMessage.MessageType)
}
return nil
}