Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.4.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

QtWebSocket

levlev
30 May modifié dans Qt / QML / Qt Quick
Salut tout le monde !

J’essaie depuis ce matin de communiquer avec une cnc (base pc - avec serveur web) en utilisant QtWebSckets... sans succès... il faudrait que je fasse cette communication en QML/js pure, pas de c++.

Est-ce vraiment possible ?


Je veux juste lire une variable qui s’appelle .visIn_TestVar

J'arrive bien à la lire avec un outil de test, avec la requête suivante :
   <get><var>.visIn_TestVar</var></get> 

Voici mon code

import QtQuick 2.6
import QtQuick.Window 2.2
import Qt.WebSockets 1.0

Window {
visible: true
width: 640
height: 480
title: qsTr("WebSocketTest")



WebSocket {
id: socket
url: "ws://10.81.4.47:62944" //ip=10.80.4.74 ; port=62944
onTextMessageReceived: {
txt.text = txt.text + "\n Retour: " + message
}
onStatusChanged: if (socket.status == WebSocket.Error) {
console.log("Erreur: " + socket.errorString)

} else if (socket.status == WebSocket.Open) {

socket.sendTextMessage("<get><var>.visIn_TestVar</var></get>") //

} else if (socket.status == WebSocket.Closed) {
txt.text += "\n Socket fermé"
}
active: false
}


Text {
id: txt
text: socket.status == WebSocket.Open ? qsTr("Envoie...") : qsTr("TestQtWebSocket")
anchors.centerIn: parent
}

MouseArea {
anchors.fill: parent
onClicked: {
socket.active = !socket.active

}
}

}

Lorsque j’exécute le programme et clique dans la fenêtre, j'ai cette erreur :

QNativeSocketEngine::write() was not called in QAbstractSocket::ConnectedState
qml: Erreur: Le descripteur de socket est invalide

J'ai besoin de vous car je trouve très peu de doc et pas de solutions..

Merci d'avance
LA

Réponses






  • 類 !!!

    ça veut dire "à l'aide SVP !!!"
  • Salut !

    Déjà, es-ce que l'exemple de Qt tu arrive a le faire fonctionner ?
    Qui est pratiquement a l'identique de ton code.
    Ne serait-ce pas au niveau des autres fichiers (.pro par exemple) le problème ?
Connectez-vous ou Inscrivez-vous pour répondre.