2011-11-11 5 views
1

필자는 PHP 내에서 비 ​​차단 입출력을 수행하는 다양한 방법에 대해 어느 정도 익숙하지만,이 질문에 대한 답은 나를 피하는 것 같습니다. 내가 뭘하려고하는지 설명하겠습니다 :PHP - 비 블로킹, 나가는 TCP 연결 - 어떻게?

"Monitor"라는 정적 클래스를 가지고 싶습니다. 다양한 메시지를 보낼 수 있습니다. 그런 다음 클래스는 외부 TCP 서버에 연결하여 해당 메시지를 보내야합니다. 그러나 그런 일이 발생하기를 기다리지는 않습니다. 초기 연결에서부터 외부 서버에 이르기까지 메시지 전송을 통한 모든 작업은 비동기식으로 수행되어야하며 스크립트는 이미 다른 작업으로 이동해야합니다.

이것이 가능합니까? 현재 fsockopen(), stream_set_blocking() 등을 사용하려고 시도 중입니다 ...

+0

(현재 사용하고있는)'stream_set_blocking '이란 무엇입니까? – azat

+0

안녕하세요.이 솔루션을 찾으셨습니까? –

답변

0

당신이 말하는 것은 기본적으로 멀티 스레드 (PHP를 사용하는 일반적인 방법이 아닙니다)입니다. 방법을 확인하려면 this article을 확인하십시오. 나는 이것을 프로덕션에서 사용하는 것을 권장하지 않습니다.

+0

나는 당신이 옳다고 믿습니다. 이전에 말했듯이, PHP 내에서 멀티 플렉스 된 소켓을 수행하는 다양한 방법의 기본 사항을 이해합니다. 그러나 여기서 제가 이야기하는 것은 실제로 PHP에서 가능한 것 이상으로 한 단계 더 나아갑니다. 다양한 포크 메커니즘, 내가 사용하고 싶지 않은). 그 점을 분명히 해 주어서 고맙습니다. – tambler