Qt WebChannel ChatClient QML 애플리케이션
웹소켓을 통해 QWebChannel 서버와 통신하는 QML 클라이언트입니다.
ChatClient QML은 JavaScript와 QML을 사용하여 구현된 간단한 QWebChannel 클라이언트를 제공합니다.
QML로 웹 채널 클라이언트 구현하기
이 예는 신호 연결(newMessage
), 슬롯 호출(sendMessage
), 속성 변경 처리(userList
) 등 QWebChannel 의 클라이언트 JavaScript 구현에서 기본 요소를 사용하는 방법을 보여줍니다.
클라이언트는 localhost의 포트 12345에서 채팅 서버에 대한 WebSocket 연결을 초기화합니다. 웹소켓이 열리면 웹소켓을 첫 번째 인수로, 콜백 함수를 두 번째 인수로 받는 WebChannel 객체가 생성됩니다. 콜백이 호출되면 클라이언트는 채팅 클라이언트 구현에 필요한 모든 신호, 슬롯 및 속성을 포함하는 chatserver
라는 이름의 객체를 받습니다. 콜백 함수는 chatserver
객체에서 userListChanged
, newMessage
, keepAlive
를 해당 신호를 처리하는 별도의 함수로 연결한 다음 loginWindow
에서 show
를 호출합니다.
loginWindow
을 ID로 하는 Window
은 로그인 절차를 처리합니다. 여기에는 LoginForm.ui.qml에 정의된 LoginForm
이 포함되어 있습니다. 버튼을 누르면 로그인 이름과 콜백 함수를 인수로 사용하여 chatserver
객체에서 login
함수를 호출합니다. 이 콜백 함수는 로그인 성공 또는 실패를 모두 처리합니다.
로그인 후 클라이언트는 MainForm.ui.qml에 정의된 MainForm
, mainUi
을 id로 사용하여 sendMessage
슬롯을 사용하여 메시지를 게시하고, newMessage
신호를 사용하여 메시지를 읽고, userList
속성을 사용하여 연결된 모든 사용자의 이름을 확인합니다. 또한 클라이언트는 서버의 keepAlive
신호에 응답하여 서버가 연결이 끊긴 클라이언트를 감지하고 userList
속성에서 제거할 수 있도록 합니다.
클라이언트는 Qt WebChannel ChatServer 예제로 작업할 수 있습니다.
Qt WebChannel ChatServer 예제 및 Qt WebChannel ChatClient HTML 예제도참조하세요 .
© 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.