WebSocket.qml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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: 5
  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. */
  61. var obj = JSON.parse(message)
  62. switch (obj.type) {
  63. case "diapo":
  64. canvas.clean_path()
  65. item1.curPDF = obj.PDF
  66. item1.curImage = obj.slide //automagically change_image
  67. if (obj.total_slides === undefined){
  68. console.log(obj);
  69. total_slides = 3
  70. } else {
  71. total_slides = obj.total_slides
  72. }
  73. break
  74. case "preg":
  75. item1.addPreg(obj.text)
  76. break
  77. case "deletepreg":
  78. item1.pregs = []
  79. break
  80. case "draw":
  81. break
  82. case "clean":
  83. break
  84. case "snowmix":
  85. break
  86. default:
  87. console.log(JSON.stringify(obj))
  88. }
  89. }
  90. onStatusChanged: {
  91. isOpen = (socket.status == WebSocket.Open);
  92. if (socket.status == WebSocket.Open) {
  93. wsStatus.text = qsTr("Conectado")
  94. } else {
  95. wsStatus.text = qsTr("Desconectado\nReconectando..")
  96. }
  97. }
  98. }
  99. Timer {
  100. interval: 1000;
  101. running: true;
  102. repeat: true;
  103. onTriggered: {
  104. if (!socket.isOpen){//Reconnect
  105. socket.active = false
  106. socket.active = true
  107. console.log("Connecting... " +Date().toString())
  108. }
  109. }
  110. }
  111. }