[gd_scene load_steps=8 format=3 uid="uid://sca5nhn6lprk"] [ext_resource type="Script" path="res://mqttexample.gd" id="1_6i2w6"] [ext_resource type="PackedScene" uid="uid://ktm7k0co2o7l" path="res://addons/mqtt/mqtt.tscn" id="2_t6rxa"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_iasn2"] content_margin_left = 5.0 content_margin_right = 5.0 bg_color = Color(0.215686, 0.4, 0.4, 1) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ppk4t"] content_margin_left = 5.0 content_margin_right = 5.0 bg_color = Color(0.341176, 0.101961, 0.0392157, 1) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8b54y"] content_margin_left = 5.0 content_margin_right = 5.0 bg_color = Color(0.341176, 0.101961, 0.0392157, 1) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xasl1"] content_margin_left = 5.0 content_margin_right = 5.0 bg_color = Color(0.341176, 0.101961, 0.0392157, 1) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_njfq6"] bg_color = Color(0.0156863, 0.133333, 0.0431373, 1) [node name="mqttexample" type="Control"] layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = -123.0 offset_top = -64.0 offset_right = -1023.0 offset_bottom = -584.0 grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_6i2w6") [node name="MQTT" parent="." instance=ExtResource("2_t6rxa")] [node name="VBox" type="VBoxContainer" parent="."] self_modulate = Color(0.0588235, 1, 1, 1) layout_mode = 0 offset_left = 137.0 offset_top = 82.0 offset_right = 1017.0 offset_bottom = 576.0 [node name="HBoxBrokerControl" type="HBoxContainer" parent="VBox"] layout_mode = 2 [node name="Labelbroker" type="Label" parent="VBox/HBoxBrokerControl"] layout_mode = 2 theme_type_variation = &"HeaderLarge" text = "MQTT broker:" [node name="ButtonConnect" type="CheckButton" parent="VBox/HBoxBrokerControl"] layout_mode = 2 size_flags_horizontal = 6 text = "Connect to broker" [node name="status" type="Label" parent="VBox/HBoxBrokerControl"] layout_mode = 2 size_flags_horizontal = 2 theme_override_styles/normal = SubResource("StyleBoxFlat_iasn2") text = "...Status" horizontal_alignment = 1 [node name="HBoxBroker" type="HBoxContainer" parent="VBox"] layout_mode = 2 [node name="Label" type="Label" parent="VBox/HBoxBroker"] layout_mode = 2 text = "URL: " [node name="brokeraddress" type="LineEdit" parent="VBox/HBoxBroker"] layout_mode = 2 size_flags_horizontal = 3 text = "broker.hivemq.com" [node name="Label4" type="Label" parent="VBox/HBoxBroker"] layout_mode = 2 text = "User:" [node name="brokeruser" type="LineEdit" parent="VBox/HBoxBroker"] layout_mode = 2 [node name="Label5" type="Label" parent="VBox/HBoxBroker"] layout_mode = 2 text = "Pswd:" [node name="brokerpswd" type="LineEdit" parent="VBox/HBoxBroker"] layout_mode = 2 [node name="Label2" type="Label" parent="VBox/HBoxBroker"] layout_mode = 2 text = "Port: " [node name="brokerport" type="LineEdit" parent="VBox/HBoxBroker"] layout_mode = 2 tooltip_text = "Port " text = "1883" [node name="Label3" type="Label" parent="VBox/HBoxBroker"] layout_mode = 2 text = "Protocol: " [node name="brokerprotocol" type="OptionButton" parent="VBox/HBoxBroker"] layout_mode = 2 item_count = 4 selected = 0 popup/item_0/text = "tcp://" popup/item_0/id = 0 popup/item_1/text = "ssl://" popup/item_1/id = 1 popup/item_2/text = "ws://" popup/item_2/id = 2 popup/item_3/text = "wss://" popup/item_3/id = 3 [node name="HSeparator" type="HSeparator" parent="VBox"] custom_minimum_size = Vector2(0, 10) layout_mode = 2 [node name="HBoxLastwill" type="HBoxContainer" parent="VBox"] layout_mode = 2 [node name="Labellastwill" type="Label" parent="VBox/HBoxLastwill"] layout_mode = 2 theme_type_variation = &"HeaderMedium" text = "Last will:" [node name="Label" type="Label" parent="VBox/HBoxLastwill"] layout_mode = 2 size_flags_horizontal = 10 text = "topic:" [node name="lastwilltopic" type="LineEdit" parent="VBox/HBoxLastwill"] layout_mode = 2 size_flags_horizontal = 3 text = "godot/myname/mywill" [node name="Label2" type="Label" parent="VBox/HBoxLastwill"] layout_mode = 2 text = "message:" [node name="lastwillmessage" type="LineEdit" parent="VBox/HBoxLastwill"] layout_mode = 2 size_flags_horizontal = 3 text = "goodbye world" [node name="lastwillretain" type="CheckButton" parent="VBox/HBoxLastwill"] layout_mode = 2 text = "Retain " [node name="HSeparator2" type="HSeparator" parent="VBox"] custom_minimum_size = Vector2(0, 10) layout_mode = 2 [node name="HBoxSubscriptions" type="HBoxContainer" parent="VBox"] layout_mode = 2 [node name="Labellastwill2" type="Label" parent="VBox/HBoxSubscriptions"] layout_mode = 2 theme_type_variation = &"HeaderMedium" text = "Subscriptions:" [node name="Label3" type="Label" parent="VBox/HBoxSubscriptions"] layout_mode = 2 size_flags_horizontal = 10 text = "topic:" [node name="subscribetopic" type="LineEdit" parent="VBox/HBoxSubscriptions"] layout_mode = 2 size_flags_horizontal = 3 text = "godot/+" [node name="subscribe" type="Button" parent="VBox/HBoxSubscriptions"] layout_mode = 2 theme_override_styles/normal = SubResource("StyleBoxFlat_ppk4t") text = "subscribe " [node name="subscriptions" type="OptionButton" parent="VBox/HBoxSubscriptions"] custom_minimum_size = Vector2(100, 0) layout_mode = 2 size_flags_horizontal = 10 tooltip_text = "Subscribed topics " item_count = 1 selected = 0 popup/item_0/text = "" popup/item_0/id = 0 [node name="unsubscribe" type="Button" parent="VBox/HBoxSubscriptions"] layout_mode = 2 theme_override_constants/outline_size = 0 theme_override_styles/normal = SubResource("StyleBoxFlat_8b54y") text = "unsubscribe " [node name="HSeparator3" type="HSeparator" parent="VBox"] custom_minimum_size = Vector2(0, 10) layout_mode = 2 [node name="HBoxPublish" type="HBoxContainer" parent="VBox"] layout_mode = 2 [node name="Labellastwill" type="Label" parent="VBox/HBoxPublish"] layout_mode = 2 theme_type_variation = &"HeaderMedium" text = "Publish:" [node name="Label" type="Label" parent="VBox/HBoxPublish"] layout_mode = 2 size_flags_horizontal = 10 text = "topic:" [node name="publishtopic" type="LineEdit" parent="VBox/HBoxPublish"] layout_mode = 2 size_flags_horizontal = 3 text = "godot/myname" [node name="Label2" type="Label" parent="VBox/HBoxPublish"] layout_mode = 2 text = "message:" [node name="publishmessage" type="LineEdit" parent="VBox/HBoxPublish"] layout_mode = 2 size_flags_horizontal = 3 text = "hello there" [node name="publishretain" type="CheckButton" parent="VBox/HBoxPublish"] layout_mode = 2 text = "Retain " [node name="publish" type="Button" parent="VBox/HBoxPublish"] layout_mode = 2 theme_override_styles/normal = SubResource("StyleBoxFlat_xasl1") text = "Publish" [node name="HSeparator4" type="HSeparator" parent="VBox"] custom_minimum_size = Vector2(0, 10) layout_mode = 2 [node name="subscribedmessages" type="RichTextLabel" parent="VBox"] layout_mode = 2 size_flags_vertical = 3 theme_override_styles/normal = SubResource("StyleBoxFlat_njfq6") bbcode_enabled = true text = "[b]Instructions[/b] MQTT is a lightweight easy-to-use publish and subscribe (\"pubsub\") networking protocol. By default this app connects to the public server hosted at [u]https://test.mosquitto.org/[/u] , but you can connect to another broker or your own instance. [i]Commands to run on another computer terminal:[/i] > mosquitto_pub -h test.mosquitto.org -t \"godot/abcd\" -m \"Bingo!\" > mosquitto_sub -v -h test.mosquitto.org -t \"godot/#\"" [connection signal="broker_connected" from="MQTT" to="." method="_on_mqtt_broker_connected"] [connection signal="broker_connection_failed" from="MQTT" to="." method="_on_mqtt_broker_connection_failed"] [connection signal="broker_disconnected" from="MQTT" to="." method="_on_mqtt_broker_disconnected"] [connection signal="received_message" from="MQTT" to="." method="_on_mqtt_received_message"] [connection signal="toggled" from="VBox/HBoxBrokerControl/ButtonConnect" to="." method="_on_button_connect_toggled"] [connection signal="item_selected" from="VBox/HBoxBroker/brokerprotocol" to="." method="_on_brokerprotocol_item_selected"] [connection signal="pressed" from="VBox/HBoxSubscriptions/subscribe" to="." method="_on_subscribe_pressed"] [connection signal="pressed" from="VBox/HBoxSubscriptions/unsubscribe" to="." method="_on_unsubscribe_pressed"] [connection signal="pressed" from="VBox/HBoxPublish/publish" to="." method="_on_publish_pressed"]