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)); } }
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())); } }
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); }