import QtWebSockets 1.0 import QtQuick 2.5 Item { property alias tot_slides : socket.total_slides property alias isOpen : socket.isOpen function send_obj(obj) { socket.sendTextMessage(JSON.stringify(obj)) } function set_preg() { send_obj({ type: "initpreg" }) } function unset_preg() { send_obj({ type: "stoppreg" }) } function prev_diapo() { var curImage = Math.max(item1.curImage - 1, 1) send_obj({ type: "command", commandtype: "diapo", PDF: item1.curPDF, slide: curImage }) } function next_diapo() { var curImage = Math.min(item1.curImage + 1, tot_slides) send_obj({ type: "command", commandtype: "diapo", PDF: item1.curPDF, slide: curImage }) } function clear_path() { send_obj({ type: "command", commandtype: "clean" }) } function send_point(p) { send_obj({ type: "command", commandtype: "draw", points: [p], color: canvas.curColor }) } function finish_path() { send_obj({ type: "endPath" }) } WebSocket { property int total_slides: 150 id: socket //url: "wss://wscasa.especificosba.com.ar" url: "ws://192.168.1.7:9001" active: true property bool isOpen: false onTextMessageReceived: { if (message.indexOf("snowmix") > -1) return var obj = JSON.parse(message) switch (obj.type) { case "diapo": canvas.clean_path() item1.curPDF = obj.PDF item1.curImage = obj.slide //automagically change_image if (obj.total_slides === undefined){ console.log(message); total_slides = 300 } else { total_slides = obj.total_slides } break case "preg": item1.addPreg(obj.text) break case "deletepreg": item1.pregs = [] break case "endPath": case "draw": case "clean": case "snowmix": break default: console.log(JSON.stringify(obj)) } } onStatusChanged: { isOpen = (socket.status == WebSocket.Open); if (socket.status == WebSocket.Open) { wsStatus.text = qsTr("Conectado") } else { wsStatus.text = qsTr("Desconectado\nReconectando..") } } } Timer { interval: 1000; running: true; repeat: true; onTriggered: { if (!socket.isOpen){//Reconnect socket.active = false socket.active = true console.log("Connecting... " +Date().toString()) } } } }