public WebSocket(DiscordWSClient client) { _client = client; _logLevel = client.Config.LogLevel; _loginTimeout = client.Config.ConnectionTimeout; _cancelToken = new CancellationToken(true); _connectedEvent = new ManualResetEventSlim(false); _engine = new WebSocketSharpEngine(this, client.Config); _engine.BinaryMessage += (s, e) => { using (var compressed = new MemoryStream(e.Data, 2, e.Data.Length - 2)) using (var decompressed = new MemoryStream()) { using (var zlib = new DeflateStream(compressed, CompressionMode.Decompress)) zlib.CopyTo(decompressed); decompressed.Position = 0; using (var reader = new StreamReader(decompressed)) ProcessMessage(reader.ReadToEnd()).Wait(); } }; _engine.TextMessage += (s, e) => { /*await*/ ProcessMessage(e.Message).Wait(); }; }
public VoiceWebSocket(DiscordWSClient client) : base(client) { _rand = new Random(); _decoders = new ConcurrentDictionary <uint, OpusDecoder>(); _targetAudioBufferLength = client.Config.VoiceBufferLength / 20; //20 ms frames _encodingBuffer = new byte[MaxOpusSize]; _ssrcMapping = new ConcurrentDictionary <uint, string>(); _encoder = new OpusEncoder(48000, 1, 20, Opus.Application.Audio); _sendBuffer = new VoiceBuffer((int)Math.Ceiling(client.Config.VoiceBufferLength / (double)_encoder.FrameLength), _encoder.FrameSize); }
public VoiceWebSocket(DiscordWSClient client) : base(client) { _rand = new Random(); _decoders = new ConcurrentDictionary<uint, OpusDecoder>(); _targetAudioBufferLength = client.Config.VoiceBufferLength / 20; //20 ms frames _encodingBuffer = new byte[MaxOpusSize]; _ssrcMapping = new ConcurrentDictionary<uint, string>(); _encoder = new OpusEncoder(48000, 1, 20, Opus.Application.Audio); _sendBuffer = new VoiceBuffer((int)Math.Ceiling(client.Config.VoiceBufferLength / (double)_encoder.FrameLength), _encoder.FrameSize); }
public DataWebSocket(DiscordWSClient client) : base(client) { }