public ISocket CreateSocket(ILoggerFactory loggerFactory) { if (_customFactory != null) { return(_customFactory.CreateSocket()); } if (_socketType == SocketType.WebSocket) { return(SocketTools.CreateWebSocket(_address, _settings, loggerFactory)); } else if (_socketType == SocketType.TCP) { return(SocketTools.CreateTcpSocket(_address, (IPSocketSettings)_settings, loggerFactory)); } else { throw new NotSupportedException(_socketType.ToString()); } }