QWebSocket Class
웹소켓 프로토콜과 통신하는 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() |
상세 설명
웹소켓은 단일 TCP 연결을 통해 전이중 통신 채널을 제공하는 웹 기술입니다. 웹소켓 프로토콜은 2011년에 IETF에서 RFC 6455로 표준화되었습니다. QWebSocket은 클라이언트 애플리케이션과 서버 애플리케이션에서 모두 사용할 수 있습니다.
이 클래스는 QAbstractSocket 을 모델로 삼았습니다.
QWebSocket은 현재 웹소켓 확장을 지원하지 않습니다.
QWebSocket은 RFC 6455에 설명된 대로 WebSocket 프로토콜 버전 13만 지원합니다.
참고: 일부 프록시는 WebSocket 핸드셰이크 중에 사용되는 특정 HTTP 헤더를 이해하지 못합니다. 이 경우 보안되지 않은 WebSocket 연결이 실패합니다. 이 문제를 완화하는 가장 좋은 방법은 보안 연결을 통해 WebSocket을 사용하는 것입니다.
경고: 마스크를 생성하기 위해 이 WebSocket 구현에서는 비교적 안전한 QRandomGenerator::global()->generate() 함수를 사용합니다. 좋은 마스킹의 중요성에 대한 자세한 내용은 Lin-Shung Huang 외의 "재미와 이익을 위해 자신과 대화하기"를 참조하세요. 위 문서에 언급된 공격에 대한 최선의 대책은 보안 연결(wss://)을 통해 QWebSocket을 사용하는 것입니다. 일반적으로 애플리케이션에서 타사 스크립트가 QWebSocket에 액세스하지 못하도록 항상 주의해야 합니다.
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 은 닫는 이유를 더 자세히 설명합니다. 닫기 프레임을 포함한 모든 제어 프레임은 125바이트로 제한됩니다. 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()
이 함수는 내부 쓰기 버퍼에서 기본 네트워크 소켓으로 차단 없이 가능한 한 많이 씁니다. 데이터가 쓰여진 경우 이 함수는 참을 반환하고, 그렇지 않으면 거짓을 반환합니다. 버퍼링된 데이터를 즉시 전송하기 위해 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() 신호로 보고된 오류를 검사하도록 하고, 진행이 정상이라는 사용자의 확인이 있을 때만 이 메서드를 호출하세요. 예기치 않은 오류가 발생하면 연결을 중단해야 합니다. 실제 오류를 검사하지 않고 이 메서드를 호출하면 애플리케이션에 보안 위험이 발생할 가능성이 높습니다. 주의해서 사용하세요!
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 을 사용하여 웹소켓 연결을 엽니다.
request URL은 웹소켓 연결을 여는 데 사용됩니다. 요청에 있는 헤더는 웹소켓 핸드셰이크에 필요한 헤더와 함께 업그레이드 요청에서 서버로 전송됩니다.
[slot]
void QWebSocket::open(const QUrl &url)
주어진 url 을 사용하여 웹소켓 연결을 엽니다.
URL에 개행 문자(\r\n)가 포함된 경우 오류 유형이 QAbstractSocket::ConnectionRefusedError 인 오류 신호가 전송됩니다.
[slot, since 6.4]
void QWebSocket::open(const QNetworkRequest &request, const QWebSocketHandshakeOptions &options)
주어진 request 및 options 을 사용하여 웹소켓 연결을 엽니다.
request URL은 웹소켓 연결을 여는 데 사용됩니다. 요청에 있는 헤더는 웹소켓 핸드셰이크에 필요한 헤더와 함께 업그레이드 요청에서 서버로 전송됩니다.
하위 프로토콜과 같은 웹소켓 핸드셰이크에 대한 추가 옵션은 options 에서 지정할 수 있습니다.
이 기능은 Qt 6.4에 도입되었습니다.
[slot, since 6.4]
void QWebSocket::open(const QUrl &url, const QWebSocketHandshakeOptions &options)
주어진 url 및 options 을 사용하여 웹소켓 연결을 엽니다.
URL에 개행 문자(\r\n)가 포함된 경우 오류 유형이 QAbstractSocket::ConnectionRefusedError 인 오류 신호가 전송됩니다.
하위 프로토콜과 같은 웹소켓 핸드셰이크에 대한 추가 옵션은 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
피어 이름을 반환합니다.
quint16 QWebSocket::peerPort() const
피어포트를 반환합니다.
[signal, since 6.2]
void QWebSocket::peerVerifyError(const QSslError &error)
QWebSocket 는 SSL 핸드셰이크 중에 암호화가 설정되기 전에 이 신호를 여러 번 전송하여 상대방의 신원을 설정하는 동안 오류가 발생했음을 나타낼 수 있습니다. error 은 일반적으로 QWebSocket 이 피어를 안전하게 식별할 수 없음을 나타냅니다.
이 신호는 문제가 발생했을 때 조기에 알려줍니다. 이 신호에 연결하면 핸드셰이크가 완료되기 전에 연결된 슬롯 내부에서 수동으로 연결을 끊도록 선택할 수 있습니다. 아무 조치도 취하지 않으면 QWebSocket 에서 QWebSocket::sslErrors()을 전송합니다.
이 기능은 Qt 6.2에 도입되었습니다.
sslErrors()도 참조하세요 .
[slot]
void QWebSocket::ping(const QByteArray &payload = QByteArray())
서버에 핑을 보내 연결이 아직 살아있음을 표시합니다. 핑 메시지와 함께 payload 을 추가로 보낼 수 있습니다.
payload 의 크기는 125보다 클 수 없습니다. 이보다 크면 payload 은 125바이트로 잘립니다.
참고: QWebSocket 및 QWebSocketServer 은 내부적으로 핑 요청을 처리하므로 자동으로 상대방에게 핑 응답을 보냅니다.
pong()도 참조하세요 .
[signal]
void QWebSocket::pong(quint64 elapsedTime, const QByteArray &payload)
이전 핑에 대한 응답으로 퐁 메시지가 수신될 때 발생합니다. elapsedTime 에는 왕복 시간(밀리초)이, payload 에는 핑과 함께 전송된 페이로드(선택 사항)가 포함됩니다.
ping()도 참조하세요 .
[signal]
void QWebSocket::preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator)
이 신호는 SSL/TLS 핸드셰이크가 PSK 암호 스위트를 협상하는 경우 발생하며, 따라서 PSK 인증이 필요합니다.
PSK를 사용할 때 클라이언트는 유효한 ID와 유효한 사전 공유 키를 서버에 보내야 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
소켓에서 사용하는 읽기 버퍼의 크기를 바이트 단위로 반환합니다.
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 로 설정합니다. 기본값인 QWebSocket 생성기는 nullptr을 입력하여 재설정할 수 있습니다. 마스크 생성기는 연결이 열려 있는 동안에도 언제든지 변경할 수 있습니다.
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
사용된 웹소켓 프로토콜을 반환합니다.
이 함수는 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
소켓이 현재 사용 중인 버전을 반환합니다.
© 2025 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.