>  Q&A  >  본문

비동기 성능 극대화: 비차단 I/O를 위한 ReactPHP 이벤트 루프를 통해 Guzzle 7의 모든 기능을 활용하세요.

저는 DiscordPHP 봇을 가지고 있고 쿠키가 필요한 일부 웹페이지를 다운로드하려고 합니다. ReactPHP http 브라우저는 쿠키를 지원하지 않기 때문에 Guzzle과 함께 컬 핸들러를 사용해야 할 것 같습니다.

저는 다음과 같은 최소한의 스크립트를 만들었습니다:

으아악

이 코드는 addPeriodicTimer 来检查挂起并手动调用 tick() 코드를 추가하지 않고도 즉시 종료됩니다.

으아악

타이머를 사용하면 예상대로 작동합니다.

으아악

tick() 사용에 대한 아이디어는 github.com에 있는 73개의 댓글로 마감된 스레드에서 나왔습니다.

비슷한 질문이 몇 가지 있지만 이 문제를 해결하는 질문은 없는 것 같습니다.

쿠키 jar를 사용하여 HTTP GET을 시작하고 차단 호출(예: ->wait() 또는 수동 GET 并在 ReactPHP 事件循环中获取响应,而不使用阻塞调用(例如 ->wait() 或手动 tick()ing 컬을 사용하지 않고 ReactPHP 이벤트 루프에서 응답을 얻는 방법)

P粉043566314P粉043566314219일 전463

모든 응답(1)나는 대답할 것이다

  • P粉384366923

    P粉3843669232024-02-18 11:41:28

    글쎄요, ReactPHP는 쿠키를 자동으로 설정하지 않습니다. 이미 이 주제를 논의하는 티켓이 있습니다: https://github.com/reactphp/http/issues/445. 하지만 여전히 HTTP 쿠키 헤더를 수동으로 설정할 수 있습니다.

    Guzzle이 ReactPHP의 이벤트 루프를 차단하기 때문에 Guzzle과 함께 ReactPHP를 사용하면 작동하지 않는다는 점도 언급할 가치가 있습니다. 즉, 여러 요청을 보낼 수 있지만 비동기적으로 다른 작업을 수행할 수는 없습니다.

    회신하다
    0
  • 취소회신하다