server_ui.gd 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. extends Control
  2. onready var _server = $Server
  3. onready var _port = $Panel/VBoxContainer/HBoxContainer/Port
  4. onready var _line_edit = $Panel/VBoxContainer/HBoxContainer3/LineEdit
  5. onready var _write_mode = $Panel/VBoxContainer/HBoxContainer2/WriteMode
  6. onready var _log_dest = $Panel/VBoxContainer/RichTextLabel
  7. onready var _multiplayer = $Panel/VBoxContainer/HBoxContainer2/MPAPI
  8. onready var _destination = $Panel/VBoxContainer/HBoxContainer2/Destination
  9. func _ready():
  10. _write_mode.clear()
  11. _write_mode.add_item("BINARY")
  12. _write_mode.set_item_metadata(0, WebSocketPeer.WRITE_MODE_BINARY)
  13. _write_mode.add_item("TEXT")
  14. _write_mode.set_item_metadata(1, WebSocketPeer.WRITE_MODE_TEXT)
  15. _write_mode.select(0)
  16. _destination.add_item("Broadcast")
  17. _destination.set_item_metadata(0, 0)
  18. _destination.add_item("Last connected")
  19. _destination.set_item_metadata(1, 1)
  20. _destination.add_item("All But last connected")
  21. _destination.set_item_metadata(2, -1)
  22. _destination.select(0)
  23. func _on_Listen_toggled(pressed):
  24. if pressed:
  25. var use_multiplayer = _multiplayer.pressed
  26. _multiplayer.disabled = true
  27. var supported_protocols = PoolStringArray(["my-protocol", "binary"])
  28. var port = int(_port.value)
  29. if use_multiplayer:
  30. _write_mode.disabled = true
  31. _write_mode.select(0)
  32. else:
  33. _destination.disabled = true
  34. _destination.select(0)
  35. if _server.listen(port, supported_protocols, use_multiplayer) == OK:
  36. Utils._log(_log_dest, "Listing on port %s" % port)
  37. if not use_multiplayer:
  38. Utils._log(_log_dest, "Supported protocols: %s" % supported_protocols)
  39. else:
  40. Utils._log(_log_dest, "Error listening on port %s" % port)
  41. else:
  42. _server.stop()
  43. _multiplayer.disabled = false
  44. _write_mode.disabled = false
  45. _destination.disabled = false
  46. Utils._log(_log_dest, "Server stopped")
  47. func _on_Send_pressed():
  48. if _line_edit.text == "":
  49. return
  50. var dest = _destination.get_selected_metadata()
  51. if dest > 0:
  52. dest = _server.last_connected_client
  53. elif dest < 0:
  54. dest = -_server.last_connected_client
  55. Utils._log(_log_dest, "Sending data %s to %s" % [_line_edit.text, dest])
  56. _server.send_data(_line_edit.text, dest)
  57. _line_edit.text = ""
  58. func _on_WriteMode_item_selected(_id):
  59. _server.set_write_mode(_write_mode.get_selected_metadata())