QWebSocket Class
WebSocket 프로토콜을 지원하는 TCP 소켓을 구현합니다. 더 보기...
| 헤더: | #include <QWebSocket> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS WebSockets) target_link_libraries(mytarget PRIVATE Qt6::WebSockets) |
| qmake: | QT += websockets |
| 상속: | QObject |
공개 함수
| QWebSocket(const QString &origin = QString(), QWebSocketProtocol::Version version = QWebSocketProtocol::VersionLatest, QObject *parent = nullptr) | |
| virtual | ~QWebSocket() override |
| void | abort() |
| qint64 | bytesToWrite() const |
| QWebSocketProtocol::CloseCode | closeCode() const |
| QString | closeReason() const |
(since 6.2) void | continueInterruptedHandshake() |
| QAbstractSocket::SocketError | error() const |
| QString | errorString() const |
| bool | flush() |
(since 6.4) QWebSocketHandshakeOptions | handshakeOptions() const |
| void | ignoreSslErrors(const QList<QSslError> &errors) |
| bool | isValid() const |
| QHostAddress | localAddress() const |
| quint16 | localPort() const |
| const QMaskGenerator * | maskGenerator() const |
| quint64 | maxAllowedIncomingFrameSize() const |
| quint64 | maxAllowedIncomingMessageSize() const |
| QString | origin() const |
| quint64 | outgoingFrameSize() const |
| QAbstractSocket::PauseModes | pauseMode() const |
| QHostAddress | peerAddress() const |
| QString | peerName() const |
| quint16 | peerPort() const |
| QNetworkProxy | proxy() const |
| qint64 | readBufferSize() const |
| QNetworkRequest | request() const |
| QUrl | requestUrl() const |
| QString | resourceName() const |
| void | resume() |
| qint64 | sendBinaryMessage(const QByteArray &data) |
| qint64 | sendTextMessage(const QString &message) |
| void | setMaskGenerator(const QMaskGenerator *maskGenerator) |
| void | setMaxAllowedIncomingFrameSize(quint64 maxAllowedIncomingFrameSize) |
| void | setMaxAllowedIncomingMessageSize(quint64 maxAllowedIncomingMessageSize) |
| void | setOutgoingFrameSize(quint64 outgoingFrameSize) |
| void | setPauseMode(QAbstractSocket::PauseModes pauseMode) |
| void | setProxy(const QNetworkProxy &networkProxy) |
| void | setReadBufferSize(qint64 size) |
| void | setSslConfiguration(const QSslConfiguration &sslConfiguration) |
| QSslConfiguration | sslConfiguration() const |
| QAbstractSocket::SocketState | state() const |
(since 6.4) QString | subprotocol() const |
| QWebSocketProtocol::Version | version() const |
공개 슬롯
| void | close(QWebSocketProtocol::CloseCode closeCode = QWebSocketProtocol::CloseCodeNormal, const QString &reason = QString()) |
| void | ignoreSslErrors() |
| void | open(const QNetworkRequest &request) |
| void | open(const QUrl &url) |
(since 6.4) void | open(const QNetworkRequest &request, const QWebSocketHandshakeOptions &options) |
(since 6.4) void | open(const QUrl &url, const QWebSocketHandshakeOptions &options) |
| void | ping(const QByteArray &payload = QByteArray()) |
신호
| void | aboutToClose() |
(since 6.2) void | alertReceived(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description) |
(since 6.2) void | alertSent(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description) |
(since 6.6) void | authenticationRequired(QAuthenticator *authenticator) |
| void | binaryFrameReceived(const QByteArray &frame, bool isLastFrame) |
| void | binaryMessageReceived(const QByteArray &message) |
| void | bytesWritten(qint64 bytes) |
| void | connected() |
| void | disconnected() |
(since 6.5) void | errorOccurred(QAbstractSocket::SocketError error) |
(since 6.2) void | handshakeInterruptedOnError(const QSslError &error) |
(since 6.2) void | peerVerifyError(const QSslError &error) |
| void | pong(quint64 elapsedTime, const QByteArray &payload) |
| void | preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator) |
| void | proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator) |
| void | readChannelFinished() |
| void | sslErrors(const QList<QSslError> &errors) |
| void | stateChanged(QAbstractSocket::SocketState state) |
| void | textFrameReceived(const QString &frame, bool isLastFrame) |
| void | textMessageReceived(const QString &message) |
정적 공용 멤버
| quint64 | maxIncomingFrameSize() |
| quint64 | maxIncomingMessageSize() |
| quint64 | maxOutgoingFrameSize() |
상세 설명
WebSockets는 단일 TCP 연결을 통해 전이중 통신 채널을 제공하는 웹 기술입니다. WebSocket 프로토콜은 2011년 IETF에 의해 RFC 6455로 표준화되었습니다. QWebSocket은 클라이언트 애플리케이션과 서버 애플리케이션 모두에서 사용할 수 있습니다.
이 클래스는 QAbstractSocket 를 모델로 하여 구현되었습니다.
QWebSocket은 현재 WebSocket 확장을 지원하지 않습니다.
QWebSocket은 RFC 6455에 명시된 대로 WebSocket 프로토콜 버전 13만 지원합니다.
참고: 일부 프록시는 WebSocket 핸드셰이크 중에 사용되는 특정 HTTP 헤더를 인식하지 못합니다. 이 경우, 비보안 WebSocket 연결이 실패합니다. 이 문제를 완화하는 가장 좋은 방법은 보안 연결을 통해 WebSocket을 사용하는 것입니다.
경고: 마스크를 생성하기위해 , 이 WebSocket 구현체는 비교적 안전한 QRandomGenerator::global()->generate() 함수를 사용합니다. 올바른 마스킹의 중요성에 대한 자세한 내용은 Lin-Shung Huang 외의 "Talking to Yourself for Fun and Profit"을 참조하십시오. 위 문서에서 언급된 공격에 대한 최선의 대책은 보안 연결(wss://)을 통해 QWebSocket을 사용하는 것입니다. 일반적으로, 애플리케이션 내의 QWebSocket에 제3자 스크립트가 접근하지 못하도록 항상 주의해야 합니다.
QAbstractSocket, QTcpSocket 및 QWebSocket 클라이언트 예제도참조하십시오 .
멤버 함수 문서
[explicit] QWebSocket::QWebSocket(const QString &origin = QString(), QWebSocketProtocol::Version version = QWebSocketProtocol::VersionLatest, QObject *parent = nullptr)
지정된 ` origin`, 사용할 프로토콜의 ` version `, 그리고 ` parent`을 사용하여 새로운 `QWebSocket`을 생성합니다.
클라이언트의 origin 는 RFC 6454에 명시된 대로입니다. (웹 브라우저가 아닌 클라이언트의 경우 origin 는 필수가 아닙니다( RFC 6455 참조)). origin 에는 줄바꿈 문자가 포함되어서는 안 되며, 포함된 경우 핸드셰이크 단계에서 연결이 즉시 중단됩니다.
참고: 현재는 V13(RFC 6455)만 지원됩니다.
[override virtual noexcept] QWebSocket::~QWebSocket()
QWebSocket 를 삭제합니다. 소켓이 아직 열려 있는 경우 소켓을 닫고, 사용 중인 리소스를 모두 해제합니다.
void QWebSocket::abort()
현재 소켓을 중단하고 소켓을 초기화합니다. ` close()` 함수와는 달리, 이 함수는 소켓을 즉시 닫으며 쓰기 버퍼에 남아 있는 모든 데이터를 버립니다.
[signal] void QWebSocket::aboutToClose()
이 신호는 소켓이 닫히기 직전에 발생합니다. 소켓이 닫히기 전에 수행해야 할 작업이 있는 경우(예: 별도의 버퍼에 저장된 데이터를 장치에 기록해야 하는 경우) 이 신호에 연결하십시오.
close()도 참조하십시오 .
[signal, since 6.2] void QWebSocket::alertReceived(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description)
QWebSocket 피어로부터 경보 메시지를 수신하면 이 신호를 발송합니다. ` level `는 경보가 치명적인 오류인지 경고인지 여부를 나타냅니다. ` type `는 경보가 전송된 이유를 설명하는 코드입니다. 경보 메시지에 대한 텍스트 설명이 있는 경우, ` description`에 해당 내용이 제공됩니다.
참고: 이 신호는 주로 정보 제공 및 디버깅 목적으로 사용되며, 애플리케이션에서 별도로 처리할 필요가 없습니다. 경고가 치명적인 경우, 기본 백엔드가 이를 처리하고 연결을 종료합니다.
참고: 모든 백엔드가 이 기능을 지원하는 것은아닙니다 .
이 함수는 Qt 6.2에서 도입되었습니다.
alertSent(), QSsl::AlertLevel 및 QSsl::AlertType도 참조하십시오 .
[signal, since 6.2] void QWebSocket::alertSent(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description)
QWebSocket 피어에게 경고 메시지가 전송된 경우 이 신호를 발생시킵니다. ` level `는 경고인지 치명적인 오류인지 여부를 나타냅니다. ` type `는 경고 메시지의 코드를 반환합니다. 경고 메시지에 대한 텍스트 설명이 있는 경우, ` description`를 통해 제공됩니다.
참고: 이 신호는 주로 정보 제공용이며 디버깅 목적으로 사용될 수 있지만, 일반적으로 애플리케이션 측에서 별도의 조치를 취할 필요는 없습니다.
참고: 모든 백엔드가 이 기능을 지원하는 것은아닙니다 .
이 함수는 Qt 6.2에서 도입되었습니다.
alertReceived(), QSsl::AlertLevel 및 QSsl::AlertType도 참조하십시오 .
[signal, since 6.6] void QWebSocket::authenticationRequired(QAuthenticator *authenticator)
이 신호는 서버에서 인증을 요구할 때 발생합니다. 이때 인증을 허용하고 연결을 계속하려면 authenticator 객체에 필요한 세부 정보를 입력해야 합니다.
서버에서 인증을 요구할 가능성이 있는 경우, ` QUrl::setUserName ` 및 ` QUrl::setPassword`을 사용하여 초기 ` QUrl`에 사용자 이름과 비밀번호를 설정할 수 있습니다. ` QWebSocket `은 제공된 자격 증명을 사용하지 않고도 한 번 연결을 시도합니다.
참고: 신호가 반환될 때 인증 정보에 새로운 정보가 입력되어 있지 않으면 연결이 실패하므로, 이 신호에 연결하는 데 QueuedConnection을 사용할수 없습니다 .
이 함수는 Qt 6.6에서 도입되었습니다.
QAuthenticator도 참조하십시오 .
[signal] void QWebSocket::binaryFrameReceived(const QByteArray &frame, bool isLastFrame)
이 신호는 이진 프레임이 수신될 때마다 발생합니다. frame 에는 데이터가 포함되어 있으며, isLastFrame 는 이 프레임이 전체 메시지의 마지막 프레임인지 여부를 나타냅니다.
이 신호를 사용하면 전체 메시지가 도착할 때까지 기다리지 않고, 큰 메시지를 프레임 단위로 처리할 수 있습니다.
textFrameReceived()도 참조하십시오 .
[signal] void QWebSocket::binaryMessageReceived(const QByteArray &message)
이 신호는 이진 메시지가 수신될 때마다 발생합니다. message 에는 수신된 바이트가 담겨 있습니다.
textMessageReceived()도 참조하십시오 .
qint64 QWebSocket::bytesToWrite() const
쓰기 대기 중인 바이트 수를 반환합니다. 이 바이트들은 제어권이 이벤트 루프로 돌아가거나 ` flush()`가 호출될 때 기록됩니다.
flush도 참조하십시오 .
[signal] void QWebSocket::bytesWritten(qint64 bytes)
이 신호는 소켓에 데이터 페이로드가 기록될 때마다 발생합니다. ` bytes ` 인수는 이 페이로드에 기록된 바이트 수로 설정됩니다.
참고: 이 신호는 보안 웹소켓과 비보안 웹소켓 모두에서 동일한 의미를 가집니다. QSslSocket 와 달리, bytesWritten()은 암호화된 데이터가 실제로 기록된 경우에만 발생합니다( QSslSocket::encryptedBytesWritten() 참조).
close()도 참조하십시오 .
[slot] void QWebSocket::close(QWebSocketProtocol::CloseCode closeCode = QWebSocketProtocol::CloseCodeNormal, const QString &reason = QString())
지정된 closeCode 및 reason 를 사용하여 소켓을 정상적으로 닫습니다.
소켓이 닫히기 전에 쓰기 버퍼에 있는 모든 데이터는 플러시됩니다. closeCode 는 닫는 이유를 나타내는 QWebSocketProtocol::CloseCode 이며, reason 는 닫는 이유를 더 자세히 설명합니다. Close 프레임을 포함한 모든 제어 프레임의 길이는 125바이트로 제한됩니다. 이 중 2바이트가 closeCode 에 사용되므로, reason 의 최대 길이는 123바이트입니다! reason 가 이 제한을 초과하면 잘립니다.
QWebSocketProtocol::CloseCode QWebSocket::closeCode() const
소켓이 닫힌 이유를 나타내는 코드를 반환합니다.
QWebSocketProtocol::CloseCode 및 closeReason()도 참조하십시오 .
QString QWebSocket::closeReason() const
소켓이 닫힌 이유를 반환합니다.
closeCode()도 참조하십시오 .
[signal] void QWebSocket::connected()
연결이 성공적으로 설정되었을 때 발생합니다. 소켓이 연결되고 핸드셰이크가 성공하면 연결이 성공적으로 설정된 것입니다.
open() 및 disconnected()도 참조하십시오 .
[since 6.2] void QWebSocket::continueInterruptedHandshake()
응용 프로그램이 ` handshakeInterruptedOnError()` 신호를 수신한 후에도 핸드셰이크를 완료하고자 하는 경우, 이 함수를 호출해야 합니다. 이 호출은 해당 신호에 연결된 슬롯 함수 내에서 이루어져야 합니다. 신호와 슬롯 간의 연결은 직접적이어야 합니다.
이 함수는 Qt 6.2에서 도입되었습니다.
handshakeInterruptedOnError() 및 QSslConfiguration::setHandshakeMustInterruptOnError()도 참조하십시오 .
[signal] void QWebSocket::disconnected()
소켓 연결이 끊어질 때 발생합니다.
close() 및 connected()도 참조하십시오 .
QAbstractSocket::SocketError QWebSocket::error() const
마지막으로 발생한 오류의 유형을 반환합니다
errorString()도 참조하십시오 .
[signal, since 6.5] void QWebSocket::errorOccurred(QAbstractSocket::SocketError error)
이 신호는 오류가 발생한 후에 출력됩니다.
error 매개변수는 발생한 오류의 유형을 설명합니다.
QAbstractSocket::SocketError 는 등록된 메타타입이 아니므로, 큐에 등록된 연결의 경우 Q_DECLARE_METATYPE() 및 qRegisterMetaType()를 통해 이를 등록해야 합니다.
이 함수는 Qt 6.5에서 도입되었습니다.
error() 및 errorString()도 참조하십시오 .
QString QWebSocket::errorString() const
가장 최근에 발생한 오류에 대한 사람이 읽기 쉬운 설명을 반환합니다.
error()도 참조하십시오 .
bool QWebSocket::flush()
이 함수는 차단 없이 내부 쓰기 버퍼의 데이터를 가능한 한 많이 기본 네트워크 소켓에 기록합니다. 데이터가 기록된 경우 이 함수는 true를 반환하고, 그렇지 않은 경우 false를 반환합니다. QWebSocket 가 버퍼된 데이터를 즉시 전송하기 시작해야 하는 경우 이 함수를 호출하십시오. 성공적으로 쓰여진 바이트 수는 운영 체제에 따라 다릅니다. 대부분의 경우, 제어권이 이벤트 루프로 돌아가면 QWebSocket 가 자동으로 데이터 전송을 시작하므로 이 함수를 호출할 필요가 없습니다.
[signal, since 6.2] void QWebSocket::handshakeInterruptedOnError(const QSslError &error)
QWebSocket QSslConfiguration 에서 조기 오류 보고가 활성화되어 있고, 인증서 검증 오류가 발견된 경우 이 신호를 발생시킵니다. 애플리케이션은 를 확인한 후, 핸드셰이크를 계속할지, 아니면 중단하고 상대방에게 경고 메시지를 보낼지 결정해야 합니다. 신호-슬롯 연결은 직접적이어야 합니다. error
이 함수는 Qt 6.2에서 도입되었습니다.
continueInterruptedHandshake(), sslErrors(), QSslConfiguration::setHandshakeMustInterruptOnError()도 참조하십시오 .
[since 6.4] QWebSocketHandshakeOptions QWebSocket::handshakeOptions() const
이 소켓을 열 때 사용된 핸드셰이크 옵션을 반환합니다.
이 함수는 Qt 6.4에서 도입되었습니다.
[slot] void QWebSocket::ignoreSslErrors()
이 슬롯은 ` QWebSocket `에 ` QWebSocket`의 핸드셰이크 단계에서 발생하는 오류를 무시하고 연결을 계속 진행하도록 지시합니다. 핸드셰이크 단계에서 오류가 발생하더라도 연결을 계속 진행하려면, ` sslErrors()`에 연결된 슬롯에서 또는 핸드셰이크 단계가 시작되기 전에 이 슬롯을 호출해야 합니다. 오류 발생 시 또는 핸드셰이크 전에 이 슬롯을 호출하지 않으면, sslErrors() 신호가 발산된 후 연결이 끊어집니다.
경고: 반드시 사용자가 sslErrors() 신호가 보고한 오류를 확인할 수 있도록하고 , 사용자가 진행을 승인한 경우에만 이 메서드를 호출하십시오. 예기치 않은 오류가 발생하면 연결을 중단해야 합니다. 실제 오류를 확인하지 않고 이 메서드를 호출하면 애플리케이션에 보안 위험이 발생할 가능성이 매우 높습니다. 사용 시 각별한 주의를 기울이십시오!
참고: 이 슬롯은 오버로드되어 있습니다. 이 슬롯에 연결하려면:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
webSocket, qOverload<>(&QWebSocket::ignoreSslErrors));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
webSocket, [receiver = webSocket]() { receiver->ignoreSslErrors(); });sslErrors(), QSslSocket::ignoreSslErrors(), QNetworkReply::ignoreSslErrors()도 참조하십시오 .
void QWebSocket::ignoreSslErrors(const QList<QSslError> &errors)
이 방법은 QWebSocket 에 errors 에 명시된 오류들을 무시하도록 지시합니다.
SSL 오류에서 예상되는 인증서를 설정할 수 있다는 점에 유의하십시오. 예를 들어, 자체 서명된 인증서를 사용하는 서버에 연결하려는 경우 다음 코드 조각을 고려해 보십시오:
QList<QSslCertificate> cert = QSslCertificate::fromPath(QLatin1String("server-certificate.pem"));
QSslError error(QSslError::SelfSignedCertificate, cert.at(0));
QList<QSslError> expectedSslErrors;
expectedSslErrors.append(error);
QWebSocket socket;
socket.ignoreSslErrors(expectedSslErrors);
socket.open(QUrl(QStringLiteral("wss://myserver.at.home")));이 함수를 여러 번 호출하면 이전 호출에서 전달된 오류 목록이 대체됩니다. 빈 목록을 인수로 지정하여 이 함수를 호출하면 무시할 오류 목록을 지울 수 있습니다.
이 함수는 오버로드된 함수입니다.
sslErrors()도 참조하십시오 .
bool QWebSocket::isValid() const
소켓이 읽기 및 쓰기 준비가 되어 있으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.
QHostAddress QWebSocket::localAddress() const
로컬 주소를 반환합니다.
quint16 QWebSocket::localPort() const
로컬 포트를 반환합니다.
const QMaskGenerator *QWebSocket::maskGenerator() const
이 QWebSocket 에서 현재 사용 중인 마스크 생성기를 반환합니다.
setMaskGenerator()도 참조하십시오 .
quint64 QWebSocket::maxAllowedIncomingFrameSize() const
수신되는 웹소켓 프레임의 최대 허용 크기를 반환합니다.
setMaxAllowedIncomingFrameSize()도 참조하십시오 .
quint64 QWebSocket::maxAllowedIncomingMessageSize() const
수신되는 웹소켓 메시지의 허용되는 최대 크기를 반환합니다.
setMaxAllowedIncomingMessageSize()도 참조하십시오 .
[static] quint64 QWebSocket::maxIncomingFrameSize()
이 웹소켓 구현에서 수신되는 웹소켓 프레임의 최대 지원 크기를 반환합니다.
[static] quint64 QWebSocket::maxIncomingMessageSize()
이 웹소켓 구현에서 수신되는 웹소켓 메시지의 지원 가능한 최대 크기를 반환합니다.
[static] quint64 QWebSocket::maxOutgoingFrameSize()
이 웹소켓 구현에서 발신 웹소켓 프레임의 최대 지원 크기를 반환합니다.
[slot] void QWebSocket::open(const QNetworkRequest &request)
지정된 request 을 사용하여 WebSocket 연결을 열습니다.
request URL은 WebSocket 연결을 여는 데 사용됩니다. 요청에 포함된 헤더는 WebSocket 핸드셰이크에 필요한 헤더와 함께 업그레이드 요청을 통해 서버로 전송됩니다.
참고: 이 슬롯은 오버로딩되어 있습니다. 이 슬롯에 연결하려면:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
webSocket, qOverload(&QWebSocket::open));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
webSocket, [receiver = webSocket](const QNetworkRequest &request) { receiver->open(request); }); [slot] void QWebSocket::open(const QUrl &url)
지정된 url 를 사용하여 WebSocket 연결을 엽니다.
URL에 줄바꿈 문자(\r\n )가 포함된 경우, 오류 유형이 ` QAbstractSocket::ConnectionRefusedError `인 오류 신호가 발생합니다.
참고: 이 슬롯은 오버로드되어 있습니다. 이 슬롯에 연결하려면:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
webSocket, qOverload(&QWebSocket::open));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
webSocket, [receiver = webSocket](const QUrl &url) { receiver->open(url); }); [slot, since 6.4] void QWebSocket::open(const QNetworkRequest &request, const QWebSocketHandshakeOptions &options)
지정된 request 및 options 을 사용하여 WebSocket 연결을 열습니다.
request URL은 WebSocket 연결을 여는 데 사용됩니다. 요청에 포함된 헤더는 WebSocket 핸드셰이크에 필요한 헤더와 함께 업그레이드 요청을 통해 서버로 전송됩니다.
서브프로토콜과 같은 WebSocket 핸드셰이크에 대한 추가 옵션은 options 에서 지정할 수 있습니다.
참고: 이 슬롯은 오버로드되어 있습니다. 이 슬롯에 연결하려면:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
webSocket, qOverload(&QWebSocket::open));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
webSocket, [receiver = webSocket](const QNetworkRequest &request, const QWebSocketHandshakeOptions &options) { receiver->open(request, options); }); 이 함수는 Qt 6.4에서 도입되었습니다.
[slot, since 6.4] void QWebSocket::open(const QUrl &url, const QWebSocketHandshakeOptions &options)
지정된 url 및 options 을 사용하여 WebSocket 연결을 엽니다.
URL에 줄바꿈 문자(\r,\n)가 포함되어 있는 경우, 오류 유형으로 ` QAbstractSocket::ConnectionRefusedError `을 가진 오류 신호가 발생합니다.
options 에서 서브프로토콜과 같은 WebSocket 핸드셰이크에 대한 추가 옵션을 지정할 수 있습니다.
참고: 이 슬롯은 오버로드되어 있습니다. 이 슬롯에 연결하려면:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
webSocket, qOverload(&QWebSocket::open));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
webSocket, [receiver = webSocket](const QUrl &url, const QWebSocketHandshakeOptions &options) { receiver->open(url, options); }); 이 함수는 Qt 6.4에서 도입되었습니다.
QString QWebSocket::origin() const
현재 원점을 반환합니다.
quint64 QWebSocket::outgoingFrameSize() const
발신 웹소켓 프레임의 최대 크기를 반환합니다.
setOutgoingFrameSize()도 참조하십시오 .
QAbstractSocket::PauseModes QWebSocket::pauseMode() const
이 소켓의 일시 중지 모드를 반환합니다.
setPauseMode()도 참조하십시오 .
QHostAddress QWebSocket::peerAddress() const
피어 주소를 반환합니다.
QString QWebSocket::peerName() const
peerName을 반환합니다.
quint16 QWebSocket::peerPort() const
피어포트를 반환합니다.
[signal, since 6.2] void QWebSocket::peerVerifyError(const QSslError &error)
QWebSocket SSL 핸드셰이크 도중, 암호화가 설정되기 전에 이 신호를 여러 번 전송하여 상대방의 신원을 확인하는 과정에서 오류가 발생했음을 알릴 수 있습니다. ‘ error ’는 일반적으로 ‘ QWebSocket ’가 상대방을 안전하게 식별할 수 없음을 나타냅니다.
이 신호는 문제가 발생했을 때 조기에 이를 알려줍니다. 이 신호에 연결하면, 핸드셰이크가 완료되기 전에 connected 슬롯 내부에서 수동으로 연결을 끊을 수 있습니다. 아무런 조치가 취해지지 않으면, QWebSocket 는 QWebSocket::sslErrors()를 발생시킵니다.
이 함수는 Qt 6.2에서 도입되었습니다.
sslErrors()도 참조하십시오 .
[slot] void QWebSocket::ping(const QByteArray &payload = QByteArray())
서버에 핑을 보내 연결이 여전히 유지되고 있음을 알립니다. 핑 메시지와 함께 추가적인 ‘ payload ’을 함께 보낼 수 있습니다.
payload 의 크기는 125바이트를 초과할 수 없습니다. 크기가 더 크면 payload 는 125바이트로 잘립니다.
참고: ` QWebSocket ` 및 ` QWebSocketServer `는 내부적으로 ping 요청을 처리하므로, 상대방에게 자동으로 pong 응답을 반환합니다.
pong()함수도 참조하십시오 .
[signal] void QWebSocket::pong(quint64 elapsedTime, const QByteArray &payload)
이전 핑에 대한 응답으로 퐁 메시지가 수신되었을 때 발생합니다. ` elapsedTime `에는 왕복 시간(밀리초 단위)이 포함되어 있으며, ` payload `에는 핑과 함께 전송된 선택적 페이로드가 포함되어 있습니다.
ping()도 참조하십시오 .
[signal] void QWebSocket::preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator)
SSL/TLS 핸드셰이크 과정에서 PSK 암호 모음이 협상되어 PSK 인증이 필요한 경우 이 신호가 전송됩니다.
PSK를 사용할 경우, SSL 핸드셰이크를 계속 진행하기 위해 클라이언트는 서버에 유효한 신원 정보와 유효한 사전 공유 키를 전송해야 합니다. 애플리케이션은 필요에 따라 전달된 ` authenticator ` 객체를 채움으로써, 이 신호에 연결된 슬롯을 통해 이 정보를 제공할 수 있습니다.
참고: 이 신호를무시하거나 필요한 인증 정보를 제공하지 않으면 핸드셰이크가 실패하여 연결이 중단됩니다.
참고: ` authenticator `객체는 웹소켓이 소유하고 있으므로 애플리케이션에서 이를 삭제해서는 안 됩니다.
QSslPreSharedKeyAuthenticator 및 QSslSocket::preSharedKeyAuthenticationRequired()도 참조하십시오 .
QNetworkProxy QWebSocket::proxy() const
현재 설정된 프록시를 반환합니다
setProxy()도 참조하십시오 .
[signal] void QWebSocket::proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator)
이 신호는 인증이 필요한 proxy 를 사용할 때 발생될 수 있습니다. 이때 authenticator 객체에 필요한 세부 정보를 입력하여 인증을 완료하고 연결을 계속할 수 있습니다.
참고: 이 신호에 연결할 때 QueuedConnection을 사용할수는 없습니다 . 신호가 반환될 때 인증자에 새로운 정보가 입력되어 있지 않으면 연결이 실패하기 때문입니다.
QAuthenticator 및 QNetworkProxy도 참조하십시오 .
qint64 QWebSocket::readBufferSize() const
소켓에서 사용하는 readbuffer의 크기를 바이트 단위로 반환합니다.
setReadBufferSize()도 참조하십시오 .
[signal] void QWebSocket::readChannelFinished()
이 신호는 이 장치에서 입력(읽기) 스트림이 닫힐 때 발생합니다. 스트림이 닫힌 것이 감지되는 즉시 발생합니다.
close()도 참조하십시오 .
QNetworkRequest QWebSocket::request() const
이 소켓을 여는 데 사용되었거나 사용될 요청을 반환합니다.
QUrl QWebSocket::requestUrl() const
소켓이 연결되어 있거나 연결될 URL을 반환합니다.
QString QWebSocket::resourceName() const
현재 액세스 중인 리소스의 이름을 반환합니다.
void QWebSocket::resume()
소켓에서 데이터 전송을 계속합니다. 이 메서드는 소켓이 알림 수신 시 일시 중지되도록 설정된 후, 알림을 수신한 경우에만 사용해야 합니다. 현재 지원되는 유일한 알림은 ` sslErrors()`입니다. 소켓이 일시 중지 상태가 아닌 상태에서 이 메서드를 호출하면 정의되지 않은 동작이 발생합니다.
pauseMode() 및 setPauseMode()도 참조하십시오 .
qint64 QWebSocket::sendBinaryMessage(const QByteArray &data)
지정된 ` data `를 바이너리 메시지로 소켓을 통해 전송하고, 실제로 전송된 바이트 수를 반환합니다.
sendTextMessage()도 참조하십시오 .
qint64 QWebSocket::sendTextMessage(const QString &message)
지정된 ` message `를 소켓을 통해 텍스트 메시지로 전송하고, 실제로 전송된 바이트 수를 반환합니다.
sendBinaryMessage()도 참조하십시오 .
void QWebSocket::setMaskGenerator(const QMaskGenerator *maskGenerator)
마스크 생성에 사용할 생성기를 ` maskGenerator`로 설정합니다. nullptr을 전달하면 기본 생성기인 ` QWebSocket `로 재설정할 수 있습니다. 마스크 생성기는 연결이 열린 상태에서도 언제든지 변경할 수 있습니다.
maskGenerator()도 참조하십시오 .
void QWebSocket::setMaxAllowedIncomingFrameSize(quint64 maxAllowedIncomingFrameSize)
수신 웹소켓 프레임의 최대 허용 크기를 maxAllowedIncomingFrameSize 로 설정합니다. 수신 프레임이 이 한도를 초과하면 피어와의 연결이 끊어집니다. 허용되는 범위는 0에서 maxIncomingFrameSize() 사이이며, 기본값은 maxIncomingFrameSize()입니다. 이 함수의 목적은 가상 메모리가 고갈되는 것을 방지하는 것입니다.
maxAllowedIncomingFrameSize()도 참조하십시오 .
void QWebSocket::setMaxAllowedIncomingMessageSize(quint64 maxAllowedIncomingMessageSize)
수신 웹소켓 메시지의 최대 허용 크기를 ` maxAllowedIncomingMessageSize`로 설정합니다. 수신 메시지가 이 한도를 초과하면 피어와의 연결이 끊어집니다. 허용되는 범위는 0에서 ` maxIncomingMessageSize()` 사이이며, 기본값은 ` maxIncomingMessageSize()`입니다. 이 함수의 목적은 가상 메모리가 고갈되는 것을 방지하기 위함입니다.
maxAllowedIncomingMessageSize()도 참조하십시오 .
void QWebSocket::setOutgoingFrameSize(quint64 outgoingFrameSize)
발신 웹소켓 프레임의 최대 크기를 outgoingFrameSize 로 설정합니다. 허용되는 범위는 0에서 maxOutgoingFrameSize() 사이이며, 기본값은 512kB입니다. 이 함수의 목적은 수신 측에서 허용하는 최대 프레임 크기에 맞추기 위함입니다.
outgoingFrameSize()도 참조하십시오 .
void QWebSocket::setPauseMode(QAbstractSocket::PauseModes pauseMode)
알림을 수신했을 때 일시 중지할지 여부를 제어합니다. ` pauseMode ` 매개변수는 소켓이 일시 중지되어야 하는 조건을 지정합니다.
현재 지원되는 유일한 알림은 sslErrors()입니다. 이 옵션이 PauseOnSslErrors로 설정된 경우, 소켓의 데이터 전송이 일시 중지되며, resume()를 호출하여 명시적으로 다시 활성화해야 합니다. 기본적으로 이 옵션은 PauseNever로 설정되어 있습니다. 이 옵션은 서버에 연결하기 전에 호출해야 하며, 그렇지 않으면 정의되지 않은 동작이 발생합니다.
pauseMode() 및 resume()도 참조하십시오 .
void QWebSocket::setProxy(const QNetworkProxy &networkProxy)
프록시를 다음과 같이 설정합니다. networkProxy
proxy()도 참조하십시오 .
void QWebSocket::setReadBufferSize(qint64 size)
QWebSocket 의 내부 읽기 버퍼 크기를 size 바이트로 설정합니다.
버퍼 크기가 특정 크기로 제한된 경우, ` QWebSocket `는 이 크기 이상의 데이터를 버퍼링하지 않습니다. 단, 버퍼 크기가 0인 경우는 읽기 버퍼가 무제한이며 들어오는 모든 데이터가 버퍼링됨을 의미합니다. 이것이 기본값입니다. 이 옵션은 특정 시점에만 데이터를 읽는 경우(예: 실시간 스트리밍 애플리케이션)나, 소켓이 너무 많은 데이터를 수신하여 결국 애플리케이션의 메모리가 부족해지는 것을 방지하고자 할 때 유용합니다.
readBufferSize()도 참조하십시오 .
void QWebSocket::setSslConfiguration(const QSslConfiguration &sslConfiguration)
소켓의 SSL 구성을 sslConfiguration 의 내용으로 설정합니다.
이 함수는 로컬 인증서, 암호 모음, 개인 키 및 CA 인증서를 sslConfiguration 에 저장된 값으로 설정합니다. SSL 상태 관련 필드는 설정할 수 없습니다.
sslConfiguration()함수도 참조하십시오 .
QSslConfiguration QWebSocket::sslConfiguration() const
소켓의 SSL 구성 상태를 반환합니다. 소켓의 기본 SSL 구성은 기본 암호, 기본 CA 인증서를 사용하며, 로컬 개인 키나 인증서는 사용하지 않는 것입니다. 또한 SSL 구성에는 사전 공지 없이 시간이 지남에 따라 변경될 수 있는 필드들이 포함되어 있습니다.
setSslConfiguration()도 참조하십시오 .
[signal] void QWebSocket::sslErrors(const QList<QSslError> &errors)
QWebSocket 이 신호는 SSL 핸드셰이크 후, 상대방의 신원을 확인하는 과정에서 하나 이상의 오류가 발생했음을 나타내기 위해 발신됩니다. 이러한 오류는 대개 QWebSocket 가 상대방을 안전하게 식별할 수 없음을 의미합니다. 별도의 조치가 취해지지 않는 한, 이 신호가 발신된 후 연결이 끊어집니다. 발생한 오류에도 불구하고 연결을 계속 진행하려면, 이 신호에 연결된 슬롯 내에서 ` QWebSocket::ignoreSslErrors()`를 호출해야 합니다. 나중에 오류 목록에 접근해야 할 경우, `sslErrors()`를 (인수 없이) 호출할 수 있습니다.
errors QWebSocket 가 피어의 신원을 확인하는 것을 방해하는 하나 이상의 오류가 포함되어 있습니다.
참고: 이 신호에 연결할 때는 Qt::QueuedConnection 를 사용할수 없으며 , 그렇지 않으면 QWebSocket::ignoreSslErrors()를 호출해도 아무런 효과가 없습니다.
QAbstractSocket::SocketState QWebSocket::state() const
소켓의 현재 상태를 반환합니다.
[signal] void QWebSocket::stateChanged(QAbstractSocket::SocketState state)
이 신호는 ` QWebSocket`의 상태가 변경될 때마다 발생합니다. ` state ` 매개변수는 새로운 상태를 나타냅니다.
참고: QAbstractSocket::ConnectedState 는 서버와의 핸드셰이크가 성공한 후에 발생합니다.
QAbstractSocket::SocketState 는 등록된 메타타입이 아니므로, 큐에 등록된 연결의 경우 Q_REGISTER_METATYPE() 및 qRegisterMetaType()을 사용하여 이를 등록해야 합니다.
state()도 참조하십시오 .
[since 6.4] QString QWebSocket::subprotocol() const
사용 중인 WebSocket 프로토콜을 반환합니다.
이 함수는 Qt 6.4에서 도입되었습니다.
[signal] void QWebSocket::textFrameReceived(const QString &frame, bool isLastFrame)
이 신호는 텍스트 프레임이 수신될 때마다 발생합니다. ‘ frame ’에는 데이터가 포함되어 있으며, ‘ isLastFrame ’는 해당 프레임이 전체 메시지의 마지막 프레임인지 여부를 나타냅니다.
이 신호를 사용하면 전체 메시지가 도착할 때까지 기다리지 않고, 큰 메시지를 프레임 단위로 처리할 수 있습니다.
binaryFrameReceived()도 참조하십시오 .
[signal] void QWebSocket::textMessageReceived(const QString &message)
이 신호는 문자 메시지가 수신될 때마다 발생합니다. ` message `에는 수신된 문자 내용이 담겨 있습니다.
binaryMessageReceived()도 참조하십시오 .
QWebSocketProtocol::Version QWebSocket::version() const
소켓이 현재 사용하고 있는 버전을 반환합니다.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.