示例#1
0
        private async void IdentifySelfToVoiceConnection()
        {
            var identifyEvent = new SocketFrame
            {
                Type      = EventNames.IDENTIFY,
                Operation = OperationCode.Identify.ToInt(),
                Payload   = GetIdentityAsync()
            };

            await _webMessageSocket.SendJsonObjectAsync(identifyEvent);
        }
示例#2
0
        // TODO: good chance the socket will be disposed when attempting to resume so yah
        public async Task ResumeAsync()
        {
            var token = await _authenticator.GetToken();

            var resume = new GatewayResume
            {
                Token     = token,
                SessionId = lastReady?.SessionId,
                LastSequenceNumberReceived = lastGatewayEvent?.SequenceNumber.Value ?? 0
            };

            await _webMessageSocket.SendJsonObjectAsync(token);
        }
示例#3
0
        private async void WebrtcManagerOnIpAndPortObtained(object sender, Tuple <string, ushort> e)
        {
            var info = new UdpProtocolInfo()
            {
                Address = e.Item1,
                Port    = e.Item2,
                Codecs  = new List <Codec>()
                {
                    new Codec()
                    {
                        Name           = "opus",
                        payloadType    = 120,
                        Priority       = 1000,
                        Type           = "audio",
                        rtxPayloadType = 120,
                    },
                    new Codec()
                    {
                        Name           = "VP8",
                        payloadType    = 101,
                        Priority       = 1000,
                        Type           = "video",
                        rtxPayloadType = 102,
                    },
                }.ToArray(),
                Mode = "xsalsa20_poly1305", //"_suffix"
            };

            var payload = new SelectProtocol()
            {
                Protocol = "udp",
                Data     = info,
            };

            SocketFrame package = new SocketFrame()
            {
                Operation = (int)OperationCode.SelectProtocol,
                Payload   = payload,
                Type      = EventNames.SELECT_PROTOCOL,
            };

            await _webMessageSocket.SendJsonObjectAsync(package);
        }