public void ConnectFor(TransportMessage message) { if (!CanSendOrConnect(message)) { return; } try { _socket = _context.CreateSocket(SocketType.PUSH); _socket.SendHighWatermark = _options.SendHighWaterMark; _socket.TcpKeepalive = TcpKeepaliveBehaviour.Enable; _socket.TcpKeepaliveIdle = 30; _socket.TcpKeepaliveIntvl = 3; _socket.SetPeerId(PeerId); _socket.Connect(EndPoint); IsConnected = true; _logger.InfoFormat("Socket connected, Peer: {0}, EndPoint: {1}", PeerId, EndPoint); } catch (Exception ex) { _socket.Dispose(); _socket = null; IsConnected = false; _logger.ErrorFormat("Unable to connect socket, Peer: {0}, EndPoint: {1}, Exception: {2}", PeerId, EndPoint, ex); _errorHandler.OnConnectException(PeerId, EndPoint, ex); SwitchToClosedState(_options.ClosedStateDurationAfterConnectFailure); } }
public void ConnectFor(TransportMessage message) { if (!CanSendOrConnect(message)) { return; } try { _socket = CreateSocket(); _socket.Connect(EndPoint); IsConnected = true; _logger.InfoFormat("Socket connected, Peer: {0}, EndPoint: {1}", PeerId, EndPoint); } catch (Exception ex) { _socket?.Dispose(); _socket = null; IsConnected = false; _logger.ErrorFormat("Unable to connect socket, Peer: {0}, EndPoint: {1}, Exception: {2}", PeerId, EndPoint, ex); _errorHandler.OnConnectException(PeerId, EndPoint, ex); SwitchToClosedState(_options.ClosedStateDurationAfterConnectFailure); } }
public void ConnectFor(TransportMessage message) { if (!CanSendOrConnect(message)) { return; } try { _socket = new ZmqSocket(_context, ZmqSocketType.PUSH); _socket.SetOption(ZmqSocketOption.SNDHWM, _options.SendHighWaterMark); _socket.SetOption(ZmqSocketOption.SNDTIMEO, (int)_options.SendTimeout.TotalMilliseconds); _socket.SetOption(ZmqSocketOption.TCP_KEEPALIVE, 1); _socket.SetOption(ZmqSocketOption.TCP_KEEPALIVE_IDLE, 30); _socket.SetOption(ZmqSocketOption.TCP_KEEPALIVE_INTVL, 3); _socket.SetOption(ZmqSocketOption.ROUTING_ID, Encoding.ASCII.GetBytes(PeerId.ToString())); _socket.Connect(EndPoint); IsConnected = true; _logger.InfoFormat("Socket connected, Peer: {0}, EndPoint: {1}", PeerId, EndPoint); } catch (Exception ex) { _socket.Dispose(); _socket = null; IsConnected = false; _logger.ErrorFormat("Unable to connect socket, Peer: {0}, EndPoint: {1}, Exception: {2}", PeerId, EndPoint, ex); _errorHandler.OnConnectException(PeerId, EndPoint, ex); SwitchToClosedState(_options.ClosedStateDurationAfterConnectFailure); } }