CSharpRTMP.Core.Protocols.DefaultProtocolFactory.ResolveProtocolChain C# (CSharp) Method

ResolveProtocolChain() public method

public ResolveProtocolChain ( string name ) : List
name string
return List
        public override List<ulong> ResolveProtocolChain(string name)
        {
            var result = new List<ulong>();
            switch (name)
            {
                case Defines.CONF_PROTOCOL_INBOUND_CLUSTER:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_CLUSTER);
                    break;
                case Defines.CONF_PROTOCOL_OUTBOUND_CLUSTER:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_OUTBOUND_CLUSTER);
                    break;
#if HAS_PROTOCOL_DNS
                case Defines.CONF_PROTOCOL_INBOUND_DNS:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_DNS);
                    break;
                case Defines.CONF_PROTOCOL_OUTBOUND_DNS:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_OUTBOUND_DNS);
                    break;
#endif
#if HAS_PROTOCOL_RTMP
                case Defines.CONF_PROTOCOL_INBOUND_RTMP:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_RTMP);
                    break;
                case Defines.CONF_PROTOCOL_OUTBOUND_RTMP:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_OUTBOUND_RTMP);
                    break;
                case Defines.CONF_PROTOCOL_INBOUND_RTMPS:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_SSL);
                    result.Add(ProtocolTypes.PT_INBOUND_RTMPS_DISC);
                    break;
                case Defines.CONF_PROTOCOL_INBOUND_RTMFP:
                    result.Add(ProtocolTypes.PT_UDP);
                    result.Add(ProtocolTypes.PT_INBOUND_RTMFP);
                    break;
#if HAS_PROTOCOL_HTTP
                case Defines.CONF_PROTOCOL_INBOUND_RTMPT:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_HTTP);
                    result.Add(ProtocolTypes.PT_INBOUND_HTTP_FOR_RTMP);
                    break;
                case Defines.CONF_PROTOCOL_INBOUND_WS_RTMP:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_WEBSOCKET);
                    result.Add(ProtocolTypes.PT_INBOUND_RTMP);
                    break;
                case Defines.CONF_PROTOCOL_INBOUND_WEBRTC:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_WEBSOCKET);
                    result.Add(ProtocolTypes.PT_INBOUND_WEBRTC_SIGNAL);
                    break;
                case Defines.CONF_PROTOCOL_INBOUND_MP4:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_MP4);
                    break;
#endif
#endif
#if HAS_PROTOCOL_TS
                case Defines.CONF_PROTOCOL_INBOUND_TCP_TS:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_TS);
                    break;
                case Defines.CONF_PROTOCOL_INBOUND_UDP_TS:
                    result.Add(ProtocolTypes.PT_UDP);
                    result.Add(ProtocolTypes.PT_INBOUND_TS);
                    break;
#endif
#if HAS_PROTOCOL_RTP
                case Defines.CONF_PROTOCOL_INBOUND_RTSP:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_RTSP);
                    break;
                case Defines.CONF_PROTOCOL_RTSP_RTCP:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_RTSP);
                    result.Add(ProtocolTypes.PT_RTCP);
                    break;
                case Defines.CONF_PROTOCOL_UDP_RTCP:
                    result.Add(ProtocolTypes.PT_UDP);
                    result.Add(ProtocolTypes.PT_RTCP);
                    break;
                case Defines.CONF_PROTOCOL_INBOUND_RTSP_RTP:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_RTSP);
                    result.Add(ProtocolTypes.PT_INBOUND_RTP);
                    break;
                case Defines.CONF_PROTOCOL_INBOUND_UDP_RTP:
                    result.Add(ProtocolTypes.PT_UDP);
                    result.Add(ProtocolTypes.PT_INBOUND_RTP);
                    break;
                case Defines.CONF_PROTOCOL_RTP_NAT_TRAVERSAL:
                    result.Add(ProtocolTypes.PT_UDP);
                    result.Add(ProtocolTypes.PT_RTP_NAT_TRAVERSAL);
                    break;
#endif
#if HAS_PROTOCOL_HTTP
                case Defines.CONF_PROTOCOL_OUTBOUND_HTTP:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_OUTBOUND_HTTP);
                    break;
#endif
#if HAS_PROTOCOL_LIVEFLV
                case Defines.CONF_PROTOCOL_INBOUND_LIVE_FLV:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_LIVE_FLV);
                    break;
#endif
#if HAS_PROTOCOL_VAR
                case Defines.CONF_PROTOCOL_INBOUND_XML_VARIANT:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_XML_VAR);
                    break;
                case Defines.CONF_PROTOCOL_INBOUND_BIN_VARIANT:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_BIN_VAR);
                    break;
                case Defines.CONF_PROTOCOL_OUTBOUND_XML_VARIANT:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_XML_VAR);
                    break;
                case Defines.CONF_PROTOCOL_OUTBOUND_BIN_VARIANT:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_BIN_VAR);
                    break;
#if HAS_PROTOCOL_HTTP
                case Defines.CONF_PROTOCOL_INBOUND_HTTP_XML_VARIANT:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_HTTP);
                    result.Add(ProtocolTypes.PT_XML_VAR);
                    break;
                case Defines.CONF_PROTOCOL_INBOUND_HTTP_BIN_VARIANT:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_HTTP);
                    result.Add(ProtocolTypes.PT_BIN_VAR);
                    break;
                case Defines.CONF_PROTOCOL_OUTBOUND_HTTP_XML_VARIANT:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_OUTBOUND_HTTP);
                    result.Add(ProtocolTypes.PT_XML_VAR);
                    break;
                case Defines.CONF_PROTOCOL_OUTBOUND_HTTP_BIN_VARIANT:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_OUTBOUND_HTTP);
                    result.Add(ProtocolTypes.PT_BIN_VAR);
                    break;

#endif
#endif
#if HAS_PROTOCOL_CLI
                case Defines.CONF_PROTOCOL_INBOUND_CLI_JSON:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_JSONCLI);
                    break;
#if HAS_PROTOCOL_HTTP
                case Defines.CONF_PROTOCOL_INBOUND_HTTP_CLI_JSON:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_HTTP);
                    result.Add(ProtocolTypes.PT_HTTP_4_CLI);
                    result.Add(ProtocolTypes.PT_INBOUND_JSONCLI);
                    break;
#endif
#endif
#if HAS_PROTOCOL_MMS
                case Defines.CONF_PROTOCOL_OUTBOUND_MMS:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_OUTBOUND_MMS);
                    break;
#endif
#if HAS_PROTOCOL_RAWHTTPSTREAM
                case Defines.CONF_PROTOCOL_INBOUND_RAW_HTTP_STREAM:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_RAW_HTTP_STREAM);
                    break;
                case Defines.CONF_PROTOCOL_INBOUND_RAW_HTTPS_STREAM:
                    result.Add(ProtocolTypes.PT_TCP);
                    result.Add(ProtocolTypes.PT_INBOUND_SSL);
                    result.Add(ProtocolTypes.PT_INBOUND_RAW_HTTP_STREAM);
                    break;
#endif
                default:
                    Logger.FATAL("Invalid protocol chain: {0}.", name);
                    break;
            }
            return result;
        }