
SwooleHttpClient::upgrade 함수의 매개변수 'stream'과 'headers'의 차이점은 다음과 같습니다.
- 'stream' 매개변수: HTTP 업그레이드 프로토콜의 첫 번째 단계인 HTTP/1.1 Connection: Upgrade 헤더를 처리하기 위한 스트림입니다. 이 매개변수는 업그레이드 프로세스의 초기 단계에서 사용됩니다.
- 'headers' 매개변수: 업그레이드 프로세스의 두 번째 단계에서 사용되는 HTTP 헤더입니다. 이 매개변수는 업그레이드 프로토콜의 두 번째 단계에서 사용됩니다.
upgrade 함수를 호출하는 시점에 'stream' 매개변수에 할당해야 하는 값은 업그레이드 프로토콜의 첫 번째 단계에서 사용되는 HTTP 헤더를 포함하는 스트림입니다. 예를 들어, HTTP/1.1 Connection: Upgrade 헤더를 포함하는 스트림을 할당해야 합니다.
정확한 예제 코드는 다음과 같습니다.
#hostingforum.kr
php
use SwooleHttpClient;
$client = new Client('http://example.com');
$client->setHeaders([
'Host' => 'example.com',
'Connection' => 'Upgrade',
'Upgrade' => 'websocket',
'Sec-WebSocket-Version' => '13',
'Sec-WebSocket-Key' => 'your-websocket-key',
]);
$response = $client->upgrade('stream', [
'Host' => 'example.com',
'Connection' => 'Upgrade',
'Upgrade' => 'websocket',
'Sec-WebSocket-Version' => '13',
'Sec-WebSocket-Key' => 'your-websocket-key',
]);
if ($response->statusCode == 101) {
// 업그레이드 성공
} else {
// 업그레이드 실패
}
위 예제 코드는 HTTP 클라이언트를 WebSocket으로 업그레이드하는 예제입니다. 'stream' 매개변수에 HTTP 업그레이드 프로토콜의 첫 번째 단계에서 사용되는 HTTP 헤더를 포함하는 스트림을 할당하고, 'headers' 매개변수에 업그레이드 프로토콜의 두 번째 단계에서 사용되는 HTTP 헤더를 할당합니다.
2025-05-27 19:25