WebSocket.qml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. import QtWebSockets 1.0
  2. import QtQuick 2.5
  3. Item {
  4. property alias tot_slides : socket.total_slides
  5. property alias isOpen : socket.isOpen
  6. function send_obj(obj) {
  7. socket.sendTextMessage(JSON.stringify(obj))
  8. }
  9. function set_preg() {
  10. send_obj({
  11. type: "initpreg"
  12. })
  13. }
  14. function unset_preg() {
  15. send_obj({
  16. type: "stoppreg"
  17. })
  18. }
  19. function prev_diapo() {
  20. var curImage = Math.max(item1.curImage - 1, 1)
  21. send_obj({
  22. type: "command",
  23. commandtype: "diapo",
  24. PDF: item1.curPDF,
  25. slide: curImage
  26. })
  27. }
  28. function next_diapo() {
  29. var curImage = Math.min(item1.curImage + 1, tot_slides)
  30. send_obj({
  31. type: "command",
  32. commandtype: "diapo",
  33. PDF: item1.curPDF,
  34. slide: curImage
  35. })
  36. }
  37. function clear_path() {
  38. send_obj({
  39. type: "command",
  40. commandtype: "clean"
  41. })
  42. }
  43. function send_drawing(d) {
  44. send_obj({
  45. type: "command",
  46. commandtype: "draw",
  47. points: d,
  48. color: canvas.curColor
  49. })
  50. }
  51. WebSocket {
  52. property int total_slides: 150
  53. id: socket
  54. url: "wss://wscasa.especificosba.com.ar"
  55. active: true
  56. property bool isOpen: false
  57. onTextMessageReceived: {
  58. if (message.indexOf("snowmix") > -1)
  59. return
  60. var obj = JSON.parse(message)
  61. switch (obj.type) {
  62. case "diapo":
  63. canvas.clean_path()
  64. item1.curPDF = obj.PDF
  65. item1.curImage = obj.slide //automagically change_image
  66. if (obj.total_slides === undefined){
  67. console.log(obj);
  68. total_slides = 300
  69. } else {
  70. total_slides = obj.total_slides
  71. }
  72. break
  73. case "preg":
  74. item1.addPreg(obj.text)
  75. break
  76. case "deletepreg":
  77. item1.pregs = []
  78. break
  79. case "draw":
  80. break
  81. case "clean":
  82. break
  83. case "snowmix":
  84. break
  85. default:
  86. console.log(JSON.stringify(obj))
  87. }
  88. }
  89. onStatusChanged: {
  90. isOpen = (socket.status == WebSocket.Open);
  91. if (socket.status == WebSocket.Open) {
  92. wsStatus.text = qsTr("Conectado")
  93. } else {
  94. wsStatus.text = qsTr("Desconectado\nReconectando..")
  95. }
  96. }
  97. }
  98. Timer {
  99. interval: 1000;
  100. running: true;
  101. repeat: true;
  102. onTriggered: {
  103. if (!socket.isOpen){//Reconnect
  104. socket.active = false
  105. socket.active = true
  106. console.log("Connecting... " +Date().toString())
  107. }
  108. }
  109. }
  110. }