public BlocksAcceptor(string listenHost, int listenPort, MessageReceived messageReceived, MessageSended messageSended, ConnectionAccepted connectionAccepted, ReceiveFailed receiveFailed, SendFailed sendFailed) { log = LogManager.GetLogger(typeof(BlocksAcceptor)); this.listenHost = listenHost; this.listenPort = listenPort; this.messageReceived = messageReceived; this.messageSended = messageSended; this.connectionAccepted = connectionAccepted; this.receiveFailed = receiveFailed; this.sendFailed = sendFailed; receivePrefixHandler = new ReceivePrefixHandler(); receiveMessageHandler = new ReceiveMessageHandler(); receiveTypeSelector = new ReceiveTypeSelector(); receiveResponseHandler = new ReceiveResponseHandler(); receiveAllReadedHandler = new ReceiveAllReadedHandler(); receiveUPhotoHandler = new ReceiveUPhotoHandler(); blockAcceptEventHandler = new EventHandler <SocketAsyncEventArgs>(acceptEvent); receiveEventHandler = new EventHandler <SocketAsyncEventArgs>(receiveEvent); blockSendEventHandler = new EventHandler <SocketAsyncEventArgs>(sendEvent); }
public MonConnector(string monHost, int monPort, MessageReceived messageReceived, BaseConnector.MessageSended messageSended, ReceiveFailed receiveFailed, SendFailed sendFailed, int attemptConnect, int timeoutConnect) : this(monHost, monPort, messageReceived, messageSended, receiveFailed, sendFailed) { this.attemptConnect = attemptConnect; this.timeoutConnect = timeoutConnect; }
private string Receive() { try { return(_remoteRx.ReadLine()); } catch (Exception e) { Dispose(); ReceiveFailed?.Invoke(e); } return(null); }
public MonConnector(string monHost, int monPort, MessageReceived messageReceived, BaseConnector.MessageSended messageSended, ReceiveFailed receiveFailed, SendFailed sendFailed) { this.monHost = monHost; this.monPort = monPort; var monIPAddress = IPAddress.Parse(monHost); monEndPoint = new IPEndPoint(monIPAddress, monPort); this.messageReceived = messageReceived; this.messageSended = messageSended; this.receiveFailed = receiveFailed; this.sendFailed = sendFailed; sendEventHandler = new EventHandler <SocketAsyncEventArgs>(sendEvent); receiveEventHandler = new EventHandler <SocketAsyncEventArgs>(receiveEvent); log = LogManager.GetLogger(typeof(MonConnector)); }
public async Task <ResponseInfo> SendAsync( Func <HttpRequestMessage> generator, int maximalRetryAttempt = 5) { var policy = Policy .Handle <HttpRequestException>() .OrResult <ResponseInfo>(response => response.Status is >= HttpStatusCode.InternalServerError or HttpStatusCode.RequestTimeout) .WaitAndRetryAsync( maximalRetryAttempt, attempt => TimeSpan.FromSeconds(attempt), (result, span, attempt, _) => ReceiveFailed?.Invoke(result, span, attempt)); ResponseInfo info; try { info = await policy.ExecuteAsync(async() => { using var msg = generator(); using var res = await Client.SendAsync(msg); return(await res.Content .Decompress() .ContinueWith(t => new ResponseInfo(t.Result, res.StatusCode))); }); } catch (TaskCanceledException) { TaskCanceled?.Invoke(); return(null); } catch (Exception e) { ExceptionThrown?.Invoke(e); return(null); } return(info); }