mediasoup房间信令交换管理流程分析


)


mediasoup客户端推流代码地址:https://github.com/chensongpoixs/cmediasoupclient

mediasoup服务器代码地址:https://github.com/chensongpoixs/cmediasoup

一、 mediasoup房间信令管理的流程分析

昨天看mediasoup服务端想使用DataChannel发送信息, C++的客户端利用DataChannel发送信息。结果看一个mediasoup官方提供推流没有提供websocket连接的客户端, 而是提供一个简单推流到某个房间的简单客户端逻辑。 然后昨天下午我看一下服务器nodejs代码, 吓了我一跳, 相当于客户端连接信令服务器的逻辑要自己写, 官方提供只是一个https的协议推流的使用。

当时,我就崩溃了 我都有一点冲动了, 想使用自己拿手的工具写一个了 信令服务房间的管理, 但是工作量实在是太大了(信令服务的流程我还是不是很清楚 哭了), 我最后还是准备硬肯这边一分部房间信令管理的代码的流程。

在这里插入图片描述

1、mediasoup创建 聊天生产通道时, 步骤:

  1. 客户端先创建SDP的通道信息, 然后向服务端发送produceData信息 -> transportId (webrtc的底层连接主id), lable、protocol、appData
  2. 信令服务接受到创建生产者、的指令, 获取当前玩家主的transportId,然后调用底层C++创建一个ProduceData通道的信息、加入dataProducers中管理,返回当前玩家创建DataProducers的信息。

接下来的操作就这个创建生产数据,然后房间中其它人都创建 consumeData消费者(调用C++底层接口类似于服务器一些端口信息), 如果客户端需要获取这些信息就要出了这些的信息

当信令服务创建消费者的需要连接信息后会通知客户端。客户端需要在websocket中处理 method = 'newDataConsumer’方法 ,是否要获取别的的客户端生成信息, 需要的话, 需要连接’newDataConsumer’提供的信息连接就好了

大家是不是和我一样好奇, 返回客户端的信息只有produceDataId和coonsumerDataId的信息就可以连接服务器吗? 好奇吧 , 我们慢慢扒开它的怎么玩这个东西呢

2、玩家加入房间的操作

  1. 客户端发送rtp和sctp的处理能力的参数。
  2. 信令服务接受到客户端加入房间的信令join的指令后、先把房间中所有的玩家的信息发送当前房间中所有的玩家的信息
  3. 创建订阅房间中媒体信息消费者通道id _createConsumer 函数中调用底层C++模块中 transport.consume 消费者通道的信息保存到js模块中,然后通知当前客户端有新需要你消费数据’newConsumer’ 和’consumerScore’协议发送给peer客户端去处理
  4. 客户端收到信令服务通知事件’newConsumer’和’consumerScore’ 。客户端操作 _recvTransport.consume 去连接消费通道就可以了哈???? 其它呢

二、 mediasoup 中使用protoo工具来写websocket

1、了解一下 protoo协议的格式

①、 请求协议的格式

{
    "request":true,
    "id":7583332, //  
    "method":"getRouterRtpCapabilities", //方法
    "data":{

    }
}

② 返回协议的格式

{
    "response":true,
    "id":2645330,
    "ok":true,
    "data":{

    }
}

三、 Room房间的管理的流程

主要看协议中有玩家进入房间时广播的操作

第一个进入房间的协议的流程

1. Router处理能力

"{\"request\":true,\"id\":7583332,\"method\":\"getRouterRtpCapabilities\",\"data\":{}}"
{
    "response":true,
    "id":7583332,
    "ok":true,
    "data":{
        "codecs":[
            {
                "kind":"audio",
                "mimeType":"audio/opus",
                "clockRate":48000,
                "channels":2,
                "rtcpFeedback":[
                    {
                        "type":"transport-cc",
                        "parameter":""
                    }
                ],
                "parameters":{

                },
                "preferredPayloadType":100
            },
            {
                "kind":"video",
                "mimeType":"video/VP8",
                "clockRate":90000,
                "rtcpFeedback":[
                    {
                        "type":"nack",
                        "parameter":""
                    },
                    {
                        "type":"nack",
                        "parameter":"pli"
                    },
                    {
                        "type":"ccm",
                        "parameter":"fir"
                    },
                    {
                        "type":"goog-remb",
                        "parameter":""
                    },
                    {
                        "type":"transport-cc",
                        "parameter":""
                    }
                ],
                "parameters":{
                    "x-google-start-bitrate":1000
                },
                "preferredPayloadType":101
            },
            {
                "kind":"video",
                "mimeType":"video/rtx",
                "preferredPayloadType":102,
                "clockRate":90000,
                "parameters":{
                    "apt":101
                },
                "rtcpFeedback":[

                ]
            },
            {
                "kind":"video",
                "mimeType":"video/VP9",
                "clockRate":90000,
                "rtcpFeedback":[
                    {
                        "type":"nack",
                        "parameter":""
                    },
                    {
                        "type":"nack",
                        "parameter":"pli"
                    },
                    {
                        "type":"ccm",
                        "parameter":"fir"
                    },
                    {
                        "type":"goog-remb",
                        "parameter":""
                    },
                    {
                        "type":"transport-cc",
                        "parameter":""
                    }
                ],
                "parameters":{
                    "profile-id":2,
                    "x-google-start-bitrate":1000
                },
                "preferredPayloadType":103
            },
            {
                "kind":"video",
                "mimeType":"video/rtx",
                "preferredPayloadType":104,
                "clockRate":90000,
                "parameters":{
                    "apt":103
                },
                "rtcpFeedback":[

                ]
            },
            {
                "kind":"video",
                "mimeType":"video/H264",
                "clockRate":90000,
                "parameters":{
                    "packetization-mode":1,
                    "level-asymmetry-allowed":1,
                    "profile-level-id":"4d0032",
                    "x-google-start-bitrate":1000
                },
                "rtcpFeedback":[
                    {
                        "type":"nack",
                        "parameter":""
                    },
                    {
                        "type":"nack",
                        "parameter":"pli"
                    },
                    {
                        "type":"ccm",
                        "parameter":"fir"
                    },
                    {
                        "type":"goog-remb",
                        "parameter":""
                    },
                    {
                        "type":"transport-cc",
                        "parameter":""
                    }
                ],
                "preferredPayloadType":105
            },
            {
                "kind":"video",
                "mimeType":"video/rtx",
                "preferredPayloadType":106,
                "clockRate":90000,
                "parameters":{
                    "apt":105
                },
                "rtcpFeedback":[

                ]
            },
            {
                "kind":"video",
                "mimeType":"video/H264",
                "clockRate":90000,
                "parameters":{
                    "packetization-mode":1,
                    "level-asymmetry-allowed":1,
                    "profile-level-id":"42e01f",
                    "x-google-start-bitrate":1000
                },
                "rtcpFeedback":[
                    {
                        "type":"nack",
                        "parameter":""
                    },
                    {
                        "type":"nack",
                        "parameter":"pli"
                    },
                    {
                        "type":"ccm",
                        "parameter":"fir"
                    },
                    {
                        "type":"goog-remb",
                        "parameter":""
                    },
                    {
                        "type":"transport-cc",
                        "parameter":""
                    }
                ],
                "preferredPayloadType":107
            },
            {
                "kind":"video",
                "mimeType":"video/rtx",
                "preferredPayloadType":108,
                "clockRate":90000,
                "parameters":{
                    "apt":107
                },
                "rtcpFeedback":[

                ]
            }
        ],
        "headerExtensions":[
            {
                "kind":"audio",
                "uri":"urn:ietf:params:rtp-hdrext:sdes:mid",
                "preferredId":1,
                "preferredEncrypt":false,
                "direction":"sendrecv"
            },
            {
                "kind":"video",
                "uri":"urn:ietf:params:rtp-hdrext:sdes:mid",
                "preferredId":1,
                "preferredEncrypt":false,
                "direction":"sendrecv"
            },
            {
                "kind":"video",
                "uri":"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id",
                "preferredId":2,
                "preferredEncrypt":false,
                "direction":"recvonly"
            },
            {
                "kind":"video",
                "uri":"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id",
                "preferredId":3,
                "preferredEncrypt":false,
                "direction":"recvonly"
            },
            {
                "kind":"audio",
                "uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
                "preferredId":4,
                "preferredEncrypt":false,
                "direction":"sendrecv"
            },
            {
                "kind":"video",
                "uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
                "preferredId":4,
                "preferredEncrypt":false,
                "direction":"sendrecv"
            },
            {
                "kind":"audio",
                "uri":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
                "preferredId":5,
                "preferredEncrypt":false,
                "direction":"recvonly"
            },
            {
                "kind":"video",
                "uri":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
                "preferredId":5,
                "preferredEncrypt":false,
                "direction":"sendrecv"
            },
            {
                "kind":"video",
                "uri":"http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07",
                "preferredId":6,
                "preferredEncrypt":false,
                "direction":"sendrecv"
            },
            {
                "kind":"video",
                "uri":"urn:ietf:params:rtp-hdrext:framemarking",
                "preferredId":7,
                "preferredEncrypt":false,
                "direction":"sendrecv"
            },
            {
                "kind":"audio",
                "uri":"urn:ietf:params:rtp-hdrext:ssrc-audio-level",
                "preferredId":10,
                "preferredEncrypt":false,
                "direction":"sendrecv"
            },
            {
                "kind":"video",
                "uri":"urn:3gpp:video-orientation",
                "preferredId":11,
                "preferredEncrypt":false,
                "direction":"sendrecv"
            },
            {
                "kind":"video",
                "uri":"urn:ietf:params:rtp-hdrext:toffset",
                "preferredId":12,
                "preferredEncrypt":false,
                "direction":"sendrecv"
            }
        ]
    }
}

2. createWebRtcTransport

"{\"request\":true,\"id\":8675532,\"method\":\"createWebRtcTransport\",\"data\":{
\"forceTcp\":false,\"producing\":true,\"consuming\":false,\"sctpCapabilities\":{\"numStreams\":{\"OS\":1024,\"MIS\":1024
}}}}"
{
    "response":true,
    "id":8675532,
    "ok":true,
    "data":{
        "id":"9002a049-3f34-45eb-ab7d-a14a319482c5",
        "iceParameters":{
            "iceLite":true,
            "password":"21jsukydufonzrmk76clr5ban8hck8n1",
            "usernameFragment":"gn9igi0roxexl9cm"
        },
        "iceCandidates":[
            {
                "foundation":"udpcandidate",
                "ip":"192.168.3.185",
                "port":46308,
                "priority":1076302079,
                "protocol":"udp",
                "type":"host"
            }
        ],
        "dtlsParameters":{
            "fingerprints":[
                {
                    "algorithm":"sha-1",
                    "value":"4A:F8:D5:BC:72:34:2B:1B:45:08:19:E9:1F:CE:DF:8D:A3:85:59:42"
                },
                {
                    "algorithm":"sha-224",
                    "value":"DC:E1:4E:FF:5F:2A:75:6A:9C:D9:27:36:5A:A6:E1:F9:AD:65:49:D1:18:68:8B:FE:80:82:16:16"
                },
                {
                    "algorithm":"sha-256",
                    "value":"90:0C:94:5A:7E:5D:A1:1E:63:D6:85:E1:8A:FA:8E:6D:FD:4B:36:58:9E:CF:5F:97:71:BA:33:8D:6F:D0:A0:2B"
                },
                {
                    "algorithm":"sha-384",
                    "value":"2B:48:F7:98:D6:78:5F:58:6A:C4:BE:F3:CA:71:E9:79:68:DB:5D:14:BF:2C:AB:68:77:EE:DC:94:3E:6A:BF:32:75:27:D3:0E:51:07:77:D5:5C:82:84:55:87:F2:2B:15"
                },
                {
                    "algorithm":"sha-512",
                    "value":"D9:AF:B3:58:45:46:85:53:EC:06:47:D2:DE:9C:B5:35:42:EC:2C:04:F8:56:DC:EF:FE:D8:C7:FF:3A:A0:A8:63:44:72:E0:E0:60:A6:8C:87:E5:A4:F4:99:B4:EE:60:DB:E0:8A:81:92:42:C0:1C:17:34:8B:51:30:E8:78:78:F0"
                }
            ],
            "role":"auto"
        },
        "sctpParameters":{
            "MIS":1024,
            "OS":1024,
            "isDataChannel":true,
            "maxMessageSize":262144,
            "port":5000,
            "sctpBufferedAmount":0,
            "sendBufferSize":262144
        }
    }
}

3. createWebRtcTransport

"{\"request\":true,\"id\":3063105,\"method\":\"createWebRtcTransport\",\"data\":{
\"forceTcp\":false,\"producing\":false,\"consuming\":true,\"sctpCapabilities\":{\"numStreams\":{\"OS\":1024,\"MIS\":1024
}}}}"
{
    "response":true,
    "id":3063105,
    "ok":true,
    "data":{
        "id":"c33d46fd-cd6d-4d72-ba5e-ecea5cc3cb52",
        "iceParameters":{
            "iceLite":true,
            "password":"sif9fdktqr22iprq1ngm02lujwznvqo7",
            "usernameFragment":"icdbpn670d8w8r5s"
        },
        "iceCandidates":[
            {
                "foundation":"udpcandidate",
                "ip":"192.168.3.185",
                "port":48670,
                "priority":1076302079,
                "protocol":"udp",
                "type":"host"
            }
        ],
        "dtlsParameters":{
            "fingerprints":[
                {
                    "algorithm":"sha-1",
                    "value":"4A:F8:D5:BC:72:34:2B:1B:45:08:19:E9:1F:CE:DF:8D:A3:85:59:42"
                },
                {
                    "algorithm":"sha-224",
                    "value":"DC:E1:4E:FF:5F:2A:75:6A:9C:D9:27:36:5A:A6:E1:F9:AD:65:49:D1:18:68:8B:FE:80:82:16:16"
                },
                {
                    "algorithm":"sha-256",
                    "value":"90:0C:94:5A:7E:5D:A1:1E:63:D6:85:E1:8A:FA:8E:6D:FD:4B:36:58:9E:CF:5F:97:71:BA:33:8D:6F:D0:A0:2B"
                },
                {
                    "algorithm":"sha-384",
                    "value":"2B:48:F7:98:D6:78:5F:58:6A:C4:BE:F3:CA:71:E9:79:68:DB:5D:14:BF:2C:AB:68:77:EE:DC:94:3E:6A:BF:32:75:27:D3:0E:51:07:77:D5:5C:82:84:55:87:F2:2B:15"
                },
                {
                    "algorithm":"sha-512",
                    "value":"D9:AF:B3:58:45:46:85:53:EC:06:47:D2:DE:9C:B5:35:42:EC:2C:04:F8:56:DC:EF:FE:D8:C7:FF:3A:A0:A8:63:44:72:E0:E0:60:A6:8C:87:E5:A4:F4:99:B4:EE:60:DB:E0:8A:81:92:42:C0:1C:17:34:8B:51:30:E8:78:78:F0"
                }
            ],
            "role":"auto"
        },
        "sctpParameters":{
            "MIS":1024,
            "OS":1024,
            "isDataChannel":true,
            "maxMessageSize":262144,
            "port":5000,
            "sctpBufferedAmount":0,
            "sendBufferSize":262144
        }
    }
}

4. join

{
    "request":true,
    "id":6560731,
    "method":"join",
    "data":{
        "displayName":"Dubwool",
        "device":{
            "flag":"chrome",
            "name":"Chrome",
            "version":"95.0.4638.69"
        },
        "rtpCapabilities":{
            "codecs":[
                {
                    "mimeType":"audio/opus",
                    "kind":"audio",
                    "preferredPayloadType":100,
                    "clockRate":48000,
                    "channels":2,
                    "parameters":{
                        "minptime":10,
                        "useinbandfec":1
                    },
                    "rtcpFeedback":[
                        {
                            "type":"transport-cc",
                            "parameter":""
                        }
                    ]
                },
                {
                    "mimeType":"video/VP8",
                    "kind":"video",
                    "preferredPayloadType":101,
                    "clockRate":90000,
                    "parameters":{

                    },
                    "rtcpFeedback":[
                        {
                            "type":"goog-remb",
                            "parameter":""
                        },
                        {
                            "type":"transport-cc",
                            "parameter":""
                        },
                        {
                            "type":"ccm",
                            "parameter":"fir"
                        },
                        {
                            "type":"nack",
                            "parameter":""
                        },
                        {
                            "type":"nack",
                            "parameter":"pli"
                        }
                    ]
                },
                {
                    "mimeType":"video/rtx",
                    "kind":"video",
                    "preferredPayloadType":102,
                    "clockRate":90000,
                    "parameters":{
                        "apt":101
                    },
                    "rtcpFeedback":[

                    ]
                },
                {
                    "mimeType":"video/VP9",
                    "kind":"video",
                    "preferredPayloadType":103,
                    "clockRate":90000,
                    "parameters":{
                        "profile-id":2
                    },
                    "rtcpFeedback":[
                        {
                            "type":"goog-remb",
                            "parameter":""
                        },
                        {
                            "type":"transport-cc",
                            "parameter":""
                        },
                        {
                            "type":"ccm",
                            "parameter":"fir"
                        },
                        {
                            "type":"nack",
                            "parameter":""
                        },
                        {
                            "type":"nack",
                            "parameter":"pli"
                        }
                    ]
                },
                {
                    "mimeType":"video/rtx",
                    "kind":"video",
                    "preferredPayloadType":104,
                    "clockRate":90000,
                    "parameters":{
                        "apt":103
                    },
                    "rtcpFeedback":[

                    ]
                },
                {
                    "mimeType":"video/H264",
                    "kind":"video",
                    "preferredPayloadType":105,
                    "clockRate":90000,
                    "parameters":{
                        "level-asymmetry-allowed":1,
                        "packetization-mode":1,
                        "profile-level-id":"4d001f"
                    },
                    "rtcpFeedback":[
                        {
                            "type":"goog-remb",
                            "parameter":""
                        },
                        {
                            "type":"transport-cc",
                            "parameter":""
                        },
                        {
                            "type":"ccm",
                            "parameter":"fir"
                        },
                        {
                            "type":"nack",
                            "parameter":""
                        },
                        {
                            "type":"nack",
                            "parameter":"pli"
                        }
                    ]
                },
                {
                    "mimeType":"video/rtx",
                    "kind":"video",
                    "preferredPayloadType":106,
                    "clockRate":90000,
                    "parameters":{
                        "apt":105
                    },
                    "rtcpFeedback":[

                    ]
                },
                {
                    "mimeType":"video/H264",
                    "kind":"video",
                    "preferredPayloadType":107,
                    "clockRate":90000,
                    "parameters":{
                        "level-asymmetry-allowed":1,
                        "packetization-mode":1,
                        "profile-level-id":"42e01f"
                    },
                    "rtcpFeedback":[
                        {
                            "type":"goog-remb",
                            "parameter":""
                        },
                        {
                            "type":"transport-cc",
                            "parameter":""
                        },
                        {
                            "type":"ccm",
                            "parameter":"fir"
                        },
                        {
                            "type":"nack",
                            "parameter":""
                        },
                        {
                            "type":"nack",
                            "parameter":"pli"
                        }
                    ]
                },
                {
                    "mimeType":"video/rtx",
                    "kind":"video",
                    "preferredPayloadType":108,
                    "clockRate":90000,
                    "parameters":{
                        "apt":107
                    },
                    "rtcpFeedback":[

                    ]
                }
            ],
            "headerExtensions":[
                {
                    "kind":"audio",
                    "uri":"urn:ietf:params:rtp-hdrext:sdes:mid",
                    "preferredId":1,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"video",
                    "uri":"urn:ietf:params:rtp-hdrext:sdes:mid",
                    "preferredId":1,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"audio",
                    "uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
                    "preferredId":4,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"video",
                    "uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
                    "preferredId":4,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"video",
                    "uri":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
                    "preferredId":5,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"audio",
                    "uri":"urn:ietf:params:rtp-hdrext:ssrc-audio-level",
                    "preferredId":10,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"video",
                    "uri":"urn:3gpp:video-orientation",
                    "preferredId":11,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"video",
                    "uri":"urn:ietf:params:rtp-hdrext:toffset",
                    "preferredId":12,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                }
            ]
        },
        "sctpCapabilities":{
            "numStreams":{
                "OS":1024,
                "MIS":1024
            }
        }
    }
}
{"response":true,"id":6560731,"ok":true,"data":{"peers":[]}}


5. newDataConsumer

{
    "request":true,
    "id":2645330,
    "method":"newDataConsumer",
    "data":{
        "peerId":null,
        "dataProducerId":"6a7a186c-c98a-48fb-97a8-ce79e6f1ba14",
        "id":"250463e3-0c23-4933-905d-3167e1a08d50",
        "sctpStreamParameters":{
            "ordered":true,
            "streamId":0
        },
        "label":"bot",
        "protocol":"",
        "appData":{

        }
    }
}
{"response":true,"id":2645330,"ok":true,"data":{}}

6. connectWebRtcTransport

{
    "request":true,
    "id":6283222,
    "method":"connectWebRtcTransport",
    "data":{
        "transportId":"c33d46fd-cd6d-4d72-ba5e-ecea5cc3cb52",
        "dtlsParameters":{
            "role":"client",
            "fingerprints":[
                {
                    "algorithm":"sha-256",
                    "value":"13:0E:23:C7:02:AA:25:D2:9F:E3:1B:7F:30:8C:C2:A1:E7:9C:A6:F3:47:7A:D2:77:15:45:6B:B6:1C:EE:8A:5F"
                }
            ]
        }
    }
}
{"response":true,"id":6283222,"ok":true,"data":{}}

7. connectWebRtcTransport

{
    "request":true,
    "id":9093903,
    "method":"connectWebRtcTransport",
    "data":{
        "transportId":"9002a049-3f34-45eb-ab7d-a14a319482c5",
        "dtlsParameters":{
            "role":"server",
            "fingerprints":[
                {
                    "algorithm":"sha-256",
                    "value":"75:88:AF:35:2A:0A:8F:D7:9D:F4:2D:39:E4:48:CF:7D:E2:F8:B2:F1:04:A6:21:B6:C3:1E:C1:24:6A:B8:C4:F5"
                }
            ]
        }
    }
}
{"response":true,"id":9093903,"ok":true,"data":{}}

8. produce

{
    "request":true,
    "id":7011291,
    "method":"produce",
    "data":{
        "transportId":"9002a049-3f34-45eb-ab7d-a14a319482c5",
        "kind":"audio",
        "rtpParameters":{
            "codecs":[
                {
                    "mimeType":"audio/opus",
                    "payloadType":111,
                    "clockRate":48000,
                    "channels":2,
                    "parameters":{
                        "minptime":10,
                        "useinbandfec":1,
                        "sprop-stereo":1,
                        "usedtx":1
                    },
                    "rtcpFeedback":[
                        {
                            "type":"transport-cc",
                            "parameter":""
                        }
                    ]
                }
            ],
            "headerExtensions":[
                {
                    "uri":"urn:ietf:params:rtp-hdrext:sdes:mid",
                    "id":4,
                    "encrypt":false,
                    "parameters":{

                    }
                },
                {
                    "uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
                    "id":2,
                    "encrypt":false,
                    "parameters":{

                    }
                },
                {
                    "uri":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
                    "id":3,
                    "encrypt":false,
                    "parameters":{

                    }
                },
                {
                    "uri":"urn:ietf:params:rtp-hdrext:ssrc-audio-level",
                    "id":1,
                    "encrypt":false,
                    "parameters":{

                    }
                }
            ],
            "encodings":[
                {
                    "ssrc":1422104226,
                    "dtx":false
                }
            ],
            "rtcp":{
                "cname":"OnKk5h21ivpz4ajS",
                "reducedSize":true
            },
            "mid":"0"
        },
        "appData":{

        }
    }
}
{"response":true,"id":7011291,"ok":true,"data":{"id":"5950a096-b015-4b67-92f7-68c2a84d0043"}}

9. produceData

{
    "request":true,
    "id":2096359,
    "method":"produceData",
    "data":{
        "transportId":"9002a049-3f34-45eb-ab7d-a14a319482c5",
        "sctpStreamParameters":{
            "streamId":0,
            "ordered":false,
            "maxRetransmits":1
        },
        "label":"chat",
        "protocol":"",
        "appData":{
            "info":"my-chat-DataProducer"
        }
    }
}
{"response":true,"id":2096359,"ok":true,"data":{"id":"987cd1e9-f5cd-40aa-b4d8-2dd05c8565ba"}}

10. produceData

{
    "request":true,
    "id":2104687,
    "method":"produceData",
    "data":{
        "transportId":"9002a049-3f34-45eb-ab7d-a14a319482c5",
        "sctpStreamParameters":{
            "streamId":1,
            "ordered":false,
            "maxPacketLifeTime":2000
        },
        "label":"bot",
        "protocol":"",
        "appData":{
            "info":"my-bot-DataProducer"
        }
    }
}
{"response":true,"id":2104687,"ok":true,"data":{"id":"a16ce259-056c-4eeb-9799-63d19376f869"}}

第二个人进入房间中的流程协议================

1. getRouterRtpCapabilities

"{\"request\":true,\"id\":6179944,\"method\":\"getRouterRtpCapabilities\",\"data\":{}}"
{"response":true,"id":6179944,"ok":true,"data":{"codecs":[{"kind":"a
udio","mimeType":"audio/opus","clockRate":48000,"channels":2,"rtcpFeedback":[{"type":"transport-cc","parameter":""}],"pa
rameters":{},"preferredPayloadType":100},{"kind":"video","mimeType":"video/VP8","clockRate":90000,"rtcpFeedback":[{"type
":"nack","parameter":""},{"type":"nack","parameter":"pli"},{"type":"ccm","parameter":"fir"},{"type":"goog-remb","paramet
er":""},{"type":"transport-cc","parameter":""}],"parameters":{"x-google-start-bitrate":1000},"preferredPayloadType":101}
,{"kind":"video","mimeType":"video/rtx","preferredPayloadType":102,"clockRate":90000,"parameters":{"apt":101},"rtcpFeedb
ack":[]},{"kind":"video","mimeType":"video/VP9","clockRate":90000,"rtcpFeedback":[{"type":"nack","parameter":""},{"type"
:"nack","parameter":"pli"},{"type":"ccm","parameter":"fir"},{"type":"goog-remb","parameter":""},{"type":"transport-cc","
parameter":""}],"parameters":{"profile-id":2,"x-google-start-bitrate":1000},"preferredPayloadType":103},{"kind":"video",
"mimeType":"video/rtx","preferredPayloadType":104,"clockRate":90000,"parameters":{"apt":103},"rtcpFeedback":[]},{"kind":
"video","mimeType":"video/H264","clockRate":90000,"parameters":{"packetization-mode":1,"level-asymmetry-allowed":1,"prof
ile-level-id":"4d0032","x-google-start-bitrate":1000},"rtcpFeedback":[{"type":"nack","parameter":""},{"type":"nack","par
ameter":"pli"},{"type":"ccm","parameter":"fir"},{"type":"goog-remb","parameter":""},{"type":"transport-cc","parameter":"
"}],"preferredPayloadType":105},{"kind":"video","mimeType":"video/rtx","preferredPayloadType":106,"clockRate":90000,"par
ameters":{"apt":105},"rtcpFeedback":[]},{"kind":"video","mimeType":"video/H264","clockRate":90000,"parameters":{"packeti
zation-mode":1,"level-asymmetry-allowed":1,"profile-level-id":"42e01f","x-google-start-bitrate":1000},"rtcpFeedback":[{"
type":"nack","parameter":""},{"type":"nack","parameter":"pli"},{"type":"ccm","parameter":"fir"},{"type":"goog-remb","par
ameter":""},{"type":"transport-cc","parameter":""}],"preferredPayloadType":107},{"kind":"video","mimeType":"video/rtx","
preferredPayloadType":108,"clockRate":90000,"parameters":{"apt":107},"rtcpFeedback":[]}],"headerExtensions":[{"kind":"au
dio","uri":"urn:ietf:params:rtp-hdrext:sdes:mid","preferredId":1,"preferredEncrypt":false,"direction":"sendrecv"},{"kind
":"video","uri":"urn:ietf:params:rtp-hdrext:sdes:mid","preferredId":1,"preferredEncrypt":false,"direction":"sendrecv"},{
"kind":"video","uri":"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","preferredId":2,"preferredEncrypt":false,"direction
":"recvonly"},{"kind":"video","uri":"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id","preferredId":3,"preferredE
ncrypt":false,"direction":"recvonly"},{"kind":"audio","uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"
,"preferredId":4,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"video","uri":"http://www.webrtc.org/experimen
ts/rtp-hdrext/abs-send-time","preferredId":4,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"audio","uri":"htt
p://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01","preferredId":5,"preferredEncrypt":false,"direct
ion":"recvonly"},{"kind":"video","uri":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01","pref
erredId":5,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"video","uri":"http://tools.ietf.org/html/draft-ietf
-avtext-framemarking-07","preferredId":6,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"video","uri":"urn:iet
f:params:rtp-hdrext:framemarking","preferredId":7,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"audio","uri"
:"urn:ietf:params:rtp-hdrext:ssrc-audio-level","preferredId":10,"preferredEncrypt":false,"direction":"sendrecv"},{"kind"
:"video","uri":"urn:3gpp:video-orientation","preferredId":11,"preferredEncrypt":false,"direction":"sendrecv"},{"kind":"v
ideo","uri":"urn:ietf:params:rtp-hdrext:toffset","preferredId":12,"preferredEncrypt":false,"direction":"sendrecv"}]}}

2. createWebRtcTransport

"{\"request\":true,\"id\":6333314,\"method\":\"createWebRtcTransport\",\"data\":{
\"forceTcp\":false,\"producing\":true,\"consuming\":false,\"sctpCapabilities\":{\"numStreams\":{\"OS\":1024,\"MIS\":1024
}}}}"
{
    "response":true,
    "id":4974196,
    "ok":true,
    "data":{
        "id":"d16695e8-99fd-42e0-80e1-b38fe87cda49",
        "iceParameters":{
            "iceLite":true,
            "password":"hkmnpv5o12jm6adnyx7wisel6vkbfj6g",
            "usernameFragment":"veo1ftf6b4lw4cbx"
        },
        "iceCandidates":[
            {
                "foundation":"udpcandidate",
                "ip":"192.168.3.185",
                "port":45171,
                "priority":1076302079,
                "protocol":"udp",
                "type":"host"
            }
        ],
        "dtlsParameters":{
            "fingerprints":[
                {
                    "algorithm":"sha-1",
                    "value":"4A:F8:D5:BC:72:34:2B:1B:45:08:19:E9:1F:CE:DF:8D:A3:85:59:42"
                },
                {
                    "algorithm":"sha224",
                    "value":"DC:E1:4E:FF:5F:2A:75:6A:9C:D9:27:36:5A:A6:E1:F9:AD:65:49:D1:18:68:8B:FE:80:82:16:16"
                },
                {
                    "algorithm":"sha-256",
                    "value":"90:0C:94:5A:7E:5D:A1:1E:63:D6:85:E1:8A:FA:8E:6D:FD:4B:36:58:9E:CF:5F:97:71:BA:33:8D:6F:D0:A0:2B"
                },
                {
                    "algorithm":"sha384",
                    "value":"2B:48:F7:98:D6:78:5F:58:6A:C4:BE:F3:CA:71:E9:79:68:DB:5D:14:BF:2C:AB:68:77:EE:DC:94:3E:6A:BF:32:75:27:D3:0E:51:07:77:D5:5C:82:84:55:87:F2:2B:15"
                },
                {
                    "algorithm":"sha-512",
                    "value":"D9:AF:B3:58:45:46:85:53:EC:06:47:D2:DE:9C:B5:35:42:EC:2C:04:F8:56:DC:EF:FE:D8:C7:FF:3A:A0:A8:63:44:72:E0:E0:60:A6:8C:87:E5:A4:F4:99:B4:EE:60:DB:E0:8A:81:92:42:C0:1C:17:34:8B:51:30:E8:78:78:F0"
                }
            ],
            "role":"auto"
        },
        "sctpParameters":{
            "MIS":1024,
            "OS":1024,
            "isDataChannel":true,
            "maxMessageSize":262144,
            "port":5000,
            "sctpBufferedAm ount":0,
            "sendBufferSize":262144
        }
    }
}

3. createWebRtcTransport

"{\"request\":true,\"id\":4974196,\"method\":\"createWebRtcTransport\",\"data\":{
\"forceTcp\":false,\"producing\":false,\"consuming\":true,\"sctpCapabilities\":{\"numStreams\":{\"OS\":1024,\"MIS\":1024
}}}}"
{"response":true,"id":4974196,"ok":true,"data":{"id":"d16695e8-99fd-
42e0-80e1-b38fe87cda49","iceParameters":{"iceLite":true,"password":"hkmnpv5o12jm6adnyx7wisel6vkbfj6g","usernameFragment"
:"veo1ftf6b4lw4cbx"},"iceCandidates":[{"foundation":"udpcandidate","ip":"192.168.3.185","port":45171,"priority":10763020
79,"protocol":"udp","type":"host"}],"dtlsParameters":{"fingerprints":[{"algorithm":"sha-1","value":"4A:F8:D5:BC:72:34:2B
:1B:45:08:19:E9:1F:CE:DF:8D:A3:85:59:42"},{"algorithm":"sha-224","value":"DC:E1:4E:FF:5F:2A:75:6A:9C:D9:27:36:5A:A6:E1:F
9:AD:65:49:D1:18:68:8B:FE:80:82:16:16"},{"algorithm":"sha-256","value":"90:0C:94:5A:7E:5D:A1:1E:63:D6:85:E1:8A:FA:8E:6D:
FD:4B:36:58:9E:CF:5F:97:71:BA:33:8D:6F:D0:A0:2B"},{"algorithm":"sha-384","value":"2B:48:F7:98:D6:78:5F:58:6A:C4:BE:F3:CA
:71:E9:79:68:DB:5D:14:BF:2C:AB:68:77:EE:DC:94:3E:6A:BF:32:75:27:D3:0E:51:07:77:D5:5C:82:84:55:87:F2:2B:15"},{"algorithm"
:"sha-512","value":"D9:AF:B3:58:45:46:85:53:EC:06:47:D2:DE:9C:B5:35:42:EC:2C:04:F8:56:DC:EF:FE:D8:C7:FF:3A:A0:A8:63:44:7
2:E0:E0:60:A6:8C:87:E5:A4:F4:99:B4:EE:60:DB:E0:8A:81:92:42:C0:1C:17:34:8B:51:30:E8:78:78:F0"}],"role":"auto"},"sctpParam
eters":{"MIS":1024,"OS":1024,"isDataChannel":true,"maxMessageSize":262144,"port":5000,"sctpBufferedAmount":0,"sendBuffer
Size":262144}}}

4. join

{
    "request":true,
    "id":3414225,
    "method":"join",
    "data":{
        "displayName":"Maractus",
        "device":{
            "flag":"chrome",
            "name":"Chrome",
            "version":"95.0.4638.69"
        },
        "rtpCapabilities":{
            "codecs":[
                {
                    "mimeType":"audio/opus",
                    "kind":"audio",
                    "preferredPayloadType":100,
                    "clockRate":48000,
                    "channels":2,
                    "parameters":{
                        "minptime":10,
                        "useinbandfec":1
                    },
                    "rtcpFeedback":[
                        {
                            "type":"transport-cc",
                            "parameter":""
                        }
                    ]
                },
                {
                    "mimeType":"video/VP8",
                    "kind":"video",
                    "preferredPayloadType":101,
                    "clockRate":90000,
                    "parameters":{

                    },
                    "rtcpFeedback":[
                        {
                            "type":"goog-remb",
                            "parameter":""
                        },
                        {
                            "type":"transport-cc",
                            "parameter":""
                        },
                        {
                            "type":"ccm",
                            "parameter":"fir"
                        },
                        {
                            "type":"nack",
                            "parameter":""
                        },
                        {
                            "type":"nack",
                            "parameter":"pli"
                        }
                    ]
                },
                {
                    "mimeType":"video/rtx",
                    "kind":"video",
                    "preferredPayloadType":102,
                    "clockRate":90000,
                    "parameters":{
                        "apt":101
                    },
                    "rtcpFeedback":[

                    ]
                },
                {
                    "mimeType":"video/VP9",
                    "kind":"video",
                    "preferredPayloadType":103,
                    "clockRate":90000,
                    "parameters":{
                        "profile-id":2
                    },
                    "rtcpFeedback":[
                        {
                            "type":"goog-remb",
                            "parameter":""
                        },
                        {
                            "type":"transport-cc",
                            "parameter":""
                        },
                        {
                            "type":"ccm",
                            "parameter":"fir"
                        },
                        {
                            "type":"nack",
                            "parameter":""
                        },
                        {
                            "type":"nack",
                            "parameter":"pli"
                        }
                    ]
                },
                {
                    "mimeType":"video/rtx",
                    "kind":"video",
                    "preferredPayloadType":104,
                    "clockRate":90000,
                    "parameters":{
                        "apt":103
                    },
                    "rtcpFeedback":[

                    ]
                },
                {
                    "mimeType":"video/H264",
                    "kind":"video",
                    "preferredPayloadType":105,
                    "clockRate":90000,
                    "parameters":{
                        "level-asymmetry-allowed":1,
                        "packetization-mode":1,
                        "profile-level-id":"4d001f"
                    },
                    "rtcpFeedback":[
                        {
                            "type":"goog-remb",
                            "parameter":""
                        },
                        {
                            "type":"transport-cc",
                            "parameter":""
                        },
                        {
                            "type":"ccm",
                            "parameter":"fir"
                        },
                        {
                            "type":"nack",
                            "parameter":""
                        },
                        {
                            "type":"nack",
                            "parameter":"pli"
                        }
                    ]
                },
                {
                    "mimeType":"video/rtx",
                    "kind":"video",
                    "preferredPayloadType":106,
                    "clockRate":90000,
                    "parameters":{
                        "apt":105
                    },
                    "rtcpFeedback":[

                    ]
                },
                {
                    "mimeType":"video/H264",
                    "kind":"video",
                    "preferredPayloadType":107,
                    "clockRate":90000,
                    "parameters":{
                        "level-asymmetry-allowed":1,
                        "packetization-mode":1,
                        "profile-level-id":"42e01f"
                    },
                    "rtcpFeedback":[
                        {
                            "type":"goog-remb",
                            "parameter":""
                        },
                        {
                            "type":"transport-cc",
                            "parameter":""
                        },
                        {
                            "type":"ccm",
                            "parameter":"fir"
                        },
                        {
                            "type":"nack",
                            "parameter":""
                        },
                        {
                            "type":"nack",
                            "parameter":"pli"
                        }
                    ]
                },
                {
                    "mimeType":"video/rtx",
                    "kind":"video",
                    "preferredPayloadType":108,
                    "clockRate":90000,
                    "parameters":{
                        "apt":107
                    },
                    "rtcpFeedback":[

                    ]
                }
            ],
            "headerExtensions":[
                {
                    "kind":"audio",
                    "uri":"urn:ietf:params:rtp-hdrext:sdes:mid",
                    "preferredId":1,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"video",
                    "uri":"urn:ietf:params:rtp-hdrext:sdes:mid",
                    "preferredId":1,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"audio",
                    "uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
                    "preferredId":4,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"video",
                    "uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
                    "preferredId":4,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"video",
                    "uri":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
                    "preferredId":5,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"audio",
                    "uri":"urn:ietf:params:rtp-hdrext:ssrc-audio-level",
                    "preferredId":10,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"video",
                    "uri":"urn:3gpp:video-orientation",
                    "preferredId":11,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                },
                {
                    "kind":"video",
                    "uri":"urn:ietf:params:rtp-hdrext:toffset",
                    "preferredId":12,
                    "preferredEncrypt":false,
                    "direction":"sendrecv"
                }
            ]
        },
        "sctpCapabilities":{
            "numStreams":{
                "OS":1024,
                "MIS":1024
            }
        }
    }
}


{
    "response":true,
    "id":3414225,
    "ok":true,
    "data":{
        "peers":[
            {
                "id":"nliasepu",
                "displayName":"Dubwool",
                "device":{
                    "flag":"chrome",
                    "name":"Chrome",
                    "version":"95.0.4638.69"
                }
            }
        ]
    }
}

5. newPeer

{
    "notification":true,
    "method":"newPeer",
    "data":{
        "id":"7s3goaev",
        "displayName":"Maractus",
        "device":{
            "flag":"chrome",
            "name":"Chrome",
            "version":"95.0.4638.69"
        }
    }
}

6. newConsumer

{
    "request":true,
    "id":7201841,
    "method":"newConsumer",
    "data":{
        "peerId":"nliasepu",
        "producerId":"5950a096-b015-4b67-92f7-68c2a84d0043", //房间另一个人音频生产id
        "id":"b0f9eda3-d083-459b-929f-2baa22fd07fb",
        "kind":"audio",
        "rtpParameters":{
            "codecs":[
                {
                    "mimeType":"audio/opus",
                    "payloadType":100,
                    "clockRate":48000,
                    "channels":2,
                    "parameters":{
                        "minptime":10,
                        "useinbandfec":1,
                        "sprop-stereo":1,
                        "usedtx":1
                    },
                    "rtcpFeedback":[

                    ]
                }
            ],
            "headerExtensions":[
                {
                    "uri":"urn:ietf:params:rtp-hdrext:sdes:mid",
                    "id":1,
                    "encrypt":false,
                    "parameters":{

                    }
                },
                {
                    "uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
                    "id":4,
                    "encrypt":false,
                    "parameters":{

                    }
                },
                {
                    "uri":"urn:ietf:params:rtp-hdrext:ssrc-audio-level",
                    "id":10,
                    "encrypt":false,
                    "parameters":{

                    }
                }
            ],
            "encodings":[
                {
                    "ssrc":491600009
                }
            ],
            "rtcp":{
                "cname":"OnKk5h21ivpz4ajS",
                "reducedSize":true,
                "mux":true
            },
            "mid":"0"
        },
        "type":"simple",
        "appData":{
            "peerId":"nliasepu"
        },
        "producerPaused":false
    }
}
"{\"response\":true,\"id\":7201841,\"ok\":true,\"data\":{}}"

7. newDataConsumer

{
    "request":true,
    "id":4939736,
    "method":"newDataConsumer",
    "data":{
        "peerId":"nliasepu",
        "dataProducerId":"987cd1e9-f5cd-40aa-b4d8-2dd05c8565ba", // 房间中另外一个聊天生产通道id
        "id":"b0521adb-dd3a-4a8c-beb3-5a080bc51205",
        "sctpStreamParameters":{
            "maxRetransmits":1,
            "ordered":false,
            "streamId":0
        },
        "label":"chat",
        "protocol":"",
        "appData":{
            "info":"my-chat-DataProducer"
        }
    }
"{\"response\":true,\"id\":4939736,\"ok\":true,\"data\":{}}"

8. newDataConsumer

{
    "request":true,
    "id":6371001,
    "method":"newDataConsumer",
    "data":{
        "peerId":null,
        "dataProducerId":"6a7a186c-c98a-48fb-97a8-ce79e6f1ba14",
        "id":"f62d13e9-bcac-40ce-aa1c-99aa47e0c0bc",
        "sctpStreamParameters":{
            "ordered":true,
            "streamId":1
        },
        "label":"bot",
        "protocol":"",
        "appData":{

        }
    }
}
"{\"response\":true,\"id\":6371001,\"ok\":true,\"data\":{}}"

9. connectWebRtcTransport

{
    "request":true,
    "id":8604392,
    "method":"connectWebRtcTransport",
    "data":{
        "transportId":"d16695e8-99fd-42e0-80e1-b38fe87cda49",
        "dtlsParameters":{
            "role":"client",
            "fingerprints":[
                {
                    "algorithm":"sha-256",
                    "value":"51:B6:12:33:EA:39:9C:F2:E0:D8:62:E9:25:46:40:81:59:86:F7:C5:B1:57:53:7A:9C:8E:85:34:33:C8:24:F7"
                }
            ]
        }
    }
}
{"response":true,"id":8604392,"ok":true,"data":{}}

10. consumerScore

{
    "notification":true,
    "method":"consumerScore",
    "data":{
        "consumerId":"b0f9eda3-d083-459b-929f-2baa22fd07fb",
        "score":{
            "producerScore":10,
            "producerScores":[
                10
            ],
            "score":10
        }
    }
}

11. connectWebRtcTransport

{
    "request":true,
    "id":950269,
    "method":"connectWebRtcTransport",
    "data":{
        "transportId":"07b9cb1e-7772-40d4-a2b3-6efdc9fcd54b",
        "dtlsParameters":{
            "role":"server",
            "fingerprints":[
                {
                    "algorithm":"sha-256",
                    "value":"03:33:62:B0:82:C7:73:22:BB:E2:D4:8F:98:59:2D:F2:34:93:8F:8F:68:57:9F:01:8D:98:4B:69:FD:D6:F5:39"
                }
            ]
        }
    }
}
{"response":true,"id":950269,"ok":true,"data":{}}

12. produce

{
    "request":true,
    "id":5028012,
    "method":"produce",
    "data":{
        "transportId":"07b9cb1e-7772-40d4-a2b3-6efdc9fcd54b",
        "kind":"audio",
        "rtpParameters":{
            "codecs":[
                {
                    "mimeType":"audio/opus",
                    "payloadType":111,
                    "clockRate":48000,
                    "channels":2,
                    "parameters":{
                        "minptime":10,
                        "useinbandfec":1,
                        "sprop-stereo":1,
                        "usedtx":1
                    },
                    "rtcpFeedback":[
                        {
                            "type":"transport-cc",
                            "parameter":""
                        }
                    ]
                }
            ],
            "headerExtensions":[
                {
                    "uri":"urn:ietf:params:rtp-hdrext:sdes:mid",
                    "id":4,
                    "encrypt":false,
                    "parameters":{

                    }
                },
                {
                    "uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
                    "id":2,
                    "encrypt":false,
                    "parameters":{

                    }
                },
                {
                    "uri":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
                    "id":3,
                    "encrypt":false,
                    "parameters":{

                    }
                },
                {
                    "uri":"urn:ietf:params:rtp-hdrext:ssrc-audio-level",
                    "id":1,
                    "encrypt":false,
                    "parameters":{

                    }
                }
            ],
            "encodings":[
                {
                    "ssrc":4181971105,
                    "dtx":false
                }
            ],
            "rtcp":{
                "cname":"9K1xjVVHcWXGXP/j",
                "reducedSize":true
            },
            "mid":"0"
        },
        "appData":{

        }
    }
}
{"response":true,"id":5028012,"ok":true,"data":{"id":"f4234a01-dae5-4347-bc28-24fe96cbf147"}}

13. newConsumer

{
    "request":true,
    "id":9210323,
    "method":"newConsumer",
    "data":{
        "peerId":"7s3goaev",
        "producerId":"f4234a01-dae5-4347-bc28-24fe96cbf147",
        "id":"61df1c2d-3f8b-4f1c-ac33-0d80e5337105",
        "kind":"audio",
        "rtpParameters":{
            "codecs":[
                {
                    "mimeType":"audio/opus",
                    "payloadType":100,
                    "clockRate":48000,
                    "channels":2,
                    "parameters":{
                        "minptime":10,
                        "useinbandfec":1,
                        "sprop-stereo":1,
                        "usedtx":1
                    },
                    "rtcpFeedback":[

                    ]
                }
            ],
            "headerExtensions":[
                {
                    "uri":"urn:ietf:params:rtp-hdrext:sdes:mid",
                    "id":1,
                    "encrypt":false,
                    "parameters":{

                    }
                },
                {
                    "uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
                    "id":4,
                    "encrypt":false,
                    "parameters":{

                    }
                },
                {
                    "uri":"urn:ietf:params:rtp-hdrext:ssrc-audio-level",
                    "id":10,
                    "encrypt":false,
                    "parameters":{

                    }
                }
            ],
            "encodings":[
                {
                    "ssrc":698272620
                }
            ],
            "rtcp":{
                "cname":"9K1xjVVHcWXGXP/j",
                "reducedSize":true,
                "mux":true
            },
            "mid":"0"
        },
        "type":"simple",
        "appData":{
            "peerId":"7s3goaev"
        },
        "producerPaused":false
    }
}
"{\"response\":true,\"id\":9210323,\"ok\":true,\"data\":{}}"

14. consumerScore

{
    "notification":true,
    "method":"consumerScore",
    "data":{
        "consumerId":"61df1c2d-3f8b-4f1c-ac33-0d80e5337105",
        "score":{
            "producerScore":0,
            "producerScores":[
                0
            ],
            "score":10
        }
    }
}

15. produceData

{
    "request":true,
    "id":3126616,
    "method":"produceData",
    "data":{
        "transportId":"07b9cb1e-7772-40d4-a2b3-6efdc9fcd54b",
        "sctpStreamParameters":{
            "streamId":0,
            "ordered":false,
            "maxRetransmits":1
        },
        "label":"chat",
        "protocol":"",
        "appData":{
            "info":"my-chat-DataProducer"
        }
    }
}
{"response":true,"id":3126616,"ok":true,"data":{"id":"26b68443-7c28-4ca4-b7a9-0465712f8080"}}

16. producerScore

{
    "notification":true,
    "method":"producerScore",
    "data":{
        "producerId":"f4234a01-dae5-4347-bc28-24fe96cbf147",
        "score":[
            {
                "encodingIdx":0,
                "score":10,
                "ssrc":4181971105
            }
        ]
    }
}

17. consumerScore

{
    "notification":true,
    "method":"consumerScore",
    "data":{
        "consumerId":"61df1c2d-3f8b-4f1c-ac33-0d80e5337105",
        "score":{
            "producerScore":10,
            "producerScores":[
                10
            ],
            "score":10
        }
    }
}

18. newDataConsumer

{
    "request":true,
    "id":5276102,
    "method":"newDataConsumer",
    "data":{
        "peerId":"7s3goaev",
        "dataProducerId":"26b68443-7c28-4ca4-b7a9-0465712f8080",
        "id":"008a2545-782c-43ad-b012-ea433f8ddfce",
        "sctpStreamParameters":{
            "maxRetransmits":1,
            "ordered":false,
            "streamId":1
        },
        "label":"chat",
        "protocol":"",
        "appData":{
            "info":"my-chat-DataProducer"
        }
    }
}
"{\"response\":true,\"id\":5276102,\"ok\":true,\"data\":{}}"

19. produceData

{
    "request":true,
    "id":6945674,
    "method":"produceData",
    "data":{
        "transportId":"07b9cb1e-7772-40d4-a2b3-6efdc9fcd54b",
        "sctpStreamParameters":{
            "streamId":1,
            "ordered":false,
            "maxPacketLifeTime":2000
        },
        "label":"bot",
        "protocol":"",
        "appData":{
            "info":"my-bot-DataProducer"
        }
    }
}
{"response":true,"id":6945674,"ok":true,"data":{"id":"2a592484-5a67-4be7-9257-d3cdec59b74b"}}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值