public void Parse(HandshakeExtension info) { if (info.Properties.ContainsKey("AckExpireTime")) { AckExpireTime = TimeSpan.FromMilliseconds(int.Parse(info.Properties["AckExpireTime"])); } }
public HandshakeExtension CreateHandshakeInfo() { var frame = new HandshakeExtension(Name); frame.Properties.Add("AckExpireTime", AckExpireTime.TotalMilliseconds.ToString()); return(frame); }
public HandshakeExtension Negotiate(HandshakeExtension remoteEndPointExtension) { var frame = new HandshakeExtension(Name); if (remoteEndPointExtension.Properties.ContainsKey("AckExpireTime")) { var value = Math.Min(int.Parse(remoteEndPointExtension.Properties["AckExpireTime"]), AckExpireTime.TotalMilliseconds); frame.Properties.Add("AckExpireTime", value.ToString()); } return(frame); }
public IAckSender CreateAckSender(IConnection connection, byte extensionId, HandshakeExtension extProperties) { var msgsPerAck = MessagesPerAck; if (extProperties.Properties.ContainsKey("MessagesPerAck")) { msgsPerAck = int.Parse(extProperties.Properties["MessagesPerAck"]); } var expire = AckExpireTime; if (extProperties.Properties.ContainsKey("AckExpireTime")) { expire = TimeSpan.FromMilliseconds(int.Parse(extProperties.Properties["AckExpireTime"])); } return(new AckSender(connection, extensionId) { Threshold = msgsPerAck, TimeoutBeforeSendingAck = expire }); }
public void Parse(HandshakeExtension info) { }
public HandshakeExtension Negotiate(HandshakeExtension remoteEndPointExtension) { return(new HandshakeExtension(Name)); }
public IAckReceiver CreateAckReceiver(IConnection connection, byte extensionId, Action <MessageFrame> deliverMessageMethod, HandshakeExtension extProperties) { var msgsPerAck = MessagesPerAck; if (extProperties.Properties.ContainsKey("MessagesPerAck")) { msgsPerAck = int.Parse(extProperties.Properties["MessagesPerAck"]); } var expire = AckExpireTime; if (extProperties.Properties.ContainsKey("AckExpireTime")) { expire = TimeSpan.FromMilliseconds(int.Parse(extProperties.Properties["AckExpireTime"])); } return(new AckReceiver(connection, deliverMessageMethod, MessagesPerAck) { TimeoutBeforeResendingMessage = expire.Add(TimeSpan.FromMilliseconds(20)) //for network latency }); }
public IAckSender CreateAckSender(IConnection connection, byte extensionId, HandshakeExtension extProperties) { return(new SingleAckSender(connection)); }
public IAckReceiver CreateAckReceiver(IConnection connection, byte extensionId, Action <MessageFrame> deliverMessageMethod, HandshakeExtension extProperties) { var receiver = new SingleAckReceiver(connection, deliverMessageMethod); if (extProperties.Properties.ContainsKey("AckExpireTime")) { var value = Math.Min(int.Parse(extProperties.Properties["AckExpireTime"]), AckExpireTime.TotalMilliseconds); receiver.AckTimeout = TimeSpan.FromMilliseconds(value); } return(receiver); }
public void ConfigureUsingHandshake(HandshakeExtension frame) { }