Пример #1
0
        private void KeepaliveTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (keepaliveTimestamp <= DateTime.UtcNow)
            {
                CoapToken   token = CoapToken.Create();
                ushort      id    = CoapSender.NewId(token.TokenBytes);
                CoapRequest ping  = new CoapRequest
                {
                    MessageId   = id,
                    Token       = token.TokenBytes,
                    Code        = CodeType.EmptyMessage,
                    MessageType = CoapMessageType.Confirmable
                };

                OnKeepAlive?.Invoke(this, new CoapMessageEventArgs(ping));
            }
        }
Пример #2
0
        private void KeepaliveTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            //DateTime expiry = keepaliveExpiry.AddSeconds(Convert.ToDouble(_keepaliveSeconds * 1.5));

            //communicates to server keep alive expired
            //if (expiry < DateTime.Now)
            //{
            //    OnKeepAliveExpiry?.Invoke(this, null);
            //return;
            //}

            //signals client to send a ping to keep alive
            if (keepaliveExpiry < DateTime.Now)
            {
                OnKeepAlive?.Invoke(this, new MqttMessageEventArgs(new PingRequestMessage()));
            }
        }
Пример #3
0
        public Task Pipe(string pid, string json)
        {
            var payload = JsonSerializer.Deserialize <Payload>(json); // TODO: MAYBE FASTER

            switch (payload.Type)
            {
            case New:
                OnNew.Pipe(pid, json);
                break;

            case Bye:
                OnBye.Pipe(pid, json);
                break;

            case Offer:
                OnOffer.Pipe(pid, json);
                break;

            case Answer:
                OnAnswer.Pipe(pid, json);
                break;

            case Candidate:
                OnCandidate.Pipe(pid, json);
                break;

            case KeepAlive:
                OnKeepAlive.Pipe(pid, json);
                break;

            default:
                break;
            }

            return(Task.CompletedTask);
        }