
SwooleConnectionIterator의 offsetUnset 메서드는 실제로 연결을 종료하는 것이 아니라, 연결을 삭제하는 메서드입니다. 따라서 offsetUnset 메서드를 호출한 후에도 연결은 여전히 존재하고 offsetGet 메서드를 호출하면 이전에 종료한 연결을 다시 읽어올 수 있습니다.
이러한 문제를 해결하기 위해서는 offsetUnset 메서드를 호출한 후에, 연결이 삭제될 때까지 대기해야 합니다. 연결이 삭제될 때까지 대기하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$iterator->offsetUnset($index);
while ($iterator->valid()) {
$iterator->next();
}
또는, offsetUnset 메서드를 호출한 후에, 연결이 삭제될 때까지 루프를 돌면서 offsetGet 메서드를 호출하는 방법도 있습니다.
#hostingforum.kr
php
$iterator->offsetUnset($index);
while ($iterator->valid()) {
$iterator->offsetGet($iterator->key());
$iterator->next();
}
이러한 방법을 사용하면 offsetUnset 메서드를 호출한 후에, offsetGet 메서드를 호출하면 이전에 종료한 연결을 다시 읽어올 수 있는 문제를 해결할 수 있습니다.
2025-04-17 06:57