이 페이지에서

Qt WebChannel 독립 실행형 예제

서버와 브라우저에서 실행되는 원격 클라이언트 간의 간단한 채팅입니다.

연결 로그 출력이 표시된 터미널 위에, 주고받은 핑(ping) 및 퐁(pong) 메시지를 나열하는 대화 상자와 입력 필드, 그리고 ‘보내기’ 버튼이 있는 창

'Standalone' 예제는 QWebChannel C++ API를 사용하여 외부 클라이언트와 통신하는 방법을 보여줍니다. 이는 C++ 애플리케이션과 기본 브라우저에서 실행되는 원격 HTML 클라이언트 간의 간단한 채팅입니다.

예제 실행

다음 위치에서 예제를 실행할 수 있습니다.

원격 클라이언트와의 통신

C++ 애플리케이션은 QWebChannel 인스턴스를 설정하고, 이를 통해 Core 객체를 게시합니다. 원격 클라이언트 측에서는 index.html 이 기본 브라우저에서 실행됩니다. 양쪽 모두 수신된 메시지 목록과 상대방에게 메시지를 보낼 수 있는 입력 상자가 포함된 대화 상자를 표시합니다.

사용자가 메시지를 보내면 Core 는 Core::sendText() 신호를 발생시킵니다. 이 신호는 자동으로 HTML 클라이언트로 전달됩니다. 사용자가 HTML 측에서 메시지를 입력하면 Core::receiveText() 가 호출됩니다.

HTML 클라이언트와 C++ 서버 간의 모든 통신은 WebSocket을 통해 이루어집니다. C++ 측에서는 QWebSocketServer 를 인스턴스화하고, 들어오는 QWebSocket 연결을 QWebChannelAbstractTransport 객체로 래핑합니다. 그런 다음 이 객체들은 QWebChannel 인스턴스에 연결됩니다.

클라이언트 페이지 제공

index.html 페이지와 이 페이지가 불러오는 qwebchannel.js 스크립트는 Qt 리소스로 애플리케이션에 컴파일됩니다. 애플리케이션은 최소한의 루프백 HTTP 서버를 통해 이들을 제공하며, 결과로 생성된 http:// URL에서 기본 브라우저를 엽니다. 루프백 URL은 샌드박스 환경이나 크로스 컴파일된 플랫폼과 같이 브라우저와 애플리케이션이 파일 시스템을 공유하지 않는 경우에도 작동합니다.

이 예제는 자체적인 최소한의 HTTP 서버를 구현하고 있으므로, 빌드 시 Qt HTTP Server 모듈이 필요하지 않습니다. 실제 애플리케이션에서는 대신 QHttpServer를 사용해야 합니다.

코드 예제 프로젝트 @ code.qt.io

Qt WebChannel JavaScript API도 참조하십시오 .

© 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.