Я экспериментирую с использованием fastcgi на nginx, но я столкнулся с некоторыми проблемами. Nginx не использует соединения повторно, он дает 0 в флагах BeginRequest, поэтому приложение должно закрыть соединение после завершения запроса.
У меня есть следующий код для закрытия:
socket.shutdown(SocketShutdown.BOTH);
socket.close();
Проблема в том, что соединения фактически не закрыты. Они задерживаются как TIME_WAIT, и nginx (или что-то в этом роде) не будут открывать новые связи. Думаю, я делаю что-то не так, когда закрываю розетки, но я не знаю, что... В связи с этим, как получить nginx для сохранения соединений открытыми?
Используется nginx 1,0,6 и D 2,055
EDIT: Не приблизился, но я также проверил опцию задержки, и она выключена:
linger l;
socket.getOption(SocketOptionLevel.SOCKET, SocketOption.LINGER, l);
assert(l.on == 0); // off
getOption
возвращает 4, хотя.. Понятия не имею, что это значит. Возвращаемое значение является недокументированным.
ПРАВКА: Я также пытался использовать TCP_NODELAY в последнем отправленном сообщении, но это также не имело никакого эффекта:
socket.setOption(SocketOptionLevel.SOCKET, SocketOption.TCP_NODELAY, 1);
EDIT: nginx 1.1.4 поддерживает живые соединения. Это не работает так, как ожидалось, хотя.. Правильно сообщает, что сервер отвечает за управление временем жизни подключения, но по-прежнему создает новый сокет для каждого запроса.
-121--716203-Вот viewDidLoad от главного контроллера вида в тестовом проекте:
- (void)viewDidLoad
{ [super viewDidLoad];
UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 300, 300)];
[self.view addSubview:containerView];
UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 300)];
[redView setBackgroundColor:[UIColor redColor]];
[containerView addSubview:redView];
UIView *yellowView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 300)];
[yellowView setBackgroundColor:[UIColor yellowColor]];
[UIView transitionWithView:containerView duration:3
options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
[redView removeFromSuperview];
[containerView addSubview:yellowView];
}
completion:NULL];
}
Только что появится желтая рамка. Анимация отсутствует, независимо от того, какой вариант UIViewAnimationOption я пытаюсь использовать. Почему???
EDIT: Я также пытался использовать performSelector weyDelay для перемещения анимации из viewDidLoad и в другой метод. Тот же результат - анимация отсутствует.
Также попытался: [UIView transitionFromView:redView toView:yellowView duration:3 options:UIViewAnimationOptionTransitionFlipFromLeft completion: NULL];
однако, желтое представление просто появляется. Анимация отсутствует.