Exemple #1
0
        internal static void Resume(this DiscordSocketClient client)
        {
            var resume = new GatewayResume()
            {
                Token     = client.Token,
                SessionId = client.SessionId,
                Sequence  = client.Sequence
            };

            client.Socket.Send(GatewayOpcode.Resume, resume);
        }
Exemple #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);
        }
Exemple #3
0
        private async Task SendResumeRequestAsync()
        {
            Guard.IsNotNull(_sessionId, nameof(_sessionId));
            Guard.IsNotNull(_token, nameof(_token));

            var resume = new GatewayResume
            {
                Token     = _token,
                SessionID = _sessionId,
                LastSequenceNumberReceived = _lastEventSequenceNumber,
            };

            await SendMessageAsync(GatewayOperation.Resume, resume);
        }
Exemple #4
0
        public async void SendResumeRequest()
        {
            //Reconnect the socket
            var token   = _authenticator.GetToken();
            var payload = new GatewayResume
            {
                Token     = token,
                SessionId = lastReady?.SessionId,
                LastSequenceNumberReceived = lastGatewayEventSeq,
            };

            await SendMessageAsync("{\"op\":6,\"d\":" + JsonConvert.SerializeObject(payload) + "}");

            // await _webMessageSocket.SendJsonObjectAsync(resume);
        }
Exemple #5
0
        internal async Task SendResumeAsync()
        {
            var resume = new GatewayResume
            {
                Token          = Utilities.GetFormattedToken(this),
                SessionId      = this._sessionId,
                SequenceNumber = Volatile.Read(ref this._lastSequence)
            };
            var resume_payload = new GatewayPayload
            {
                OpCode = GatewayOpCode.Resume,
                Data   = resume
            };
            var resumestr = JsonConvert.SerializeObject(resume_payload);

            await this.WsSendAsync(resumestr).ConfigureAwait(false);
        }