mqtt test 코드 수정

This commit is contained in:
geondo55
2025-06-16 10:46:45 +09:00
parent 9f618c0ffc
commit 660e992e5d
2 changed files with 16 additions and 6 deletions

View File

@@ -15,13 +15,15 @@ namespace Studio.Connection
string domain;
int port;
List<string> topics;
Action<string, string> callback;
public TemporaryMQTTClient(string domain, int port, List<string> topic, Action<string, string> callback)
Action<string, string> topicCallback;
Action disconnectCallback;
public TemporaryMQTTClient(string domain, int port, List<string> topic, Action<string, string> topicCallback, Action disconnectCallback)
{
this.domain = domain;
this.port = port;
this.topics = topic;
this.callback = callback;
this.topicCallback = topicCallback;
this.disconnectCallback = disconnectCallback;
var optionBuilder = new ConnectionOptionsBuilder()
.WithTCP(domain, port)
.Build();
@@ -44,7 +46,7 @@ namespace Studio.Connection
{
string payload = Encoding.UTF8.GetString(message.Payload.Data, message.Payload.Offset, message.Payload.Count);
Debug.Log($"Temporary MQTT is OnTopic. {ToString()}, msg={payload}");
callback(topicName, payload);
topicCallback(topicName, payload);
this.topics.Remove(topicName);
client.CreateUnsubscribePacketBuilder(topicName)
@@ -66,12 +68,14 @@ namespace Studio.Connection
private void OnErrorMQTT(MQTTClient client, string error)
{
disconnectCallback();
Debug.Log($"Temporary MQTT Client Error. {ToString()}, error={error}");
//Disconnect();
}
private void OnDisconnectedMQTT(MQTTClient client, DisconnectReasonCodes reasonCode, string reasonMessage)
{
disconnectCallback();
Debug.Log($"Temporary MQTT Client Disconnected. {ToString()}, reason={reasonCode}, msg={reasonMessage}");
}

View File

@@ -21,6 +21,8 @@ namespace Studio.UI
private Button Button_Remove;
private RectTransform TopicItemContent;
private RectTransform AddTopic;
private Image Image_Check;
private Sprite connectedSprite, errorSprite;
private UI_InputTopicItem prf_InputTopicItem;
private List<UI_InputTopicItem> inputTopicItems = new List<UI_InputTopicItem>();
@@ -63,7 +65,7 @@ namespace Studio.UI
var topic = item.InputField_Topic.text;
topics.Add(topic);
}
var tmpClient = new TemporaryMQTTClient(domain, port, topics, OnTopicTest);
var tmpClient = new TemporaryMQTTClient(domain, port, topics, OnTopicTest, OnDisconnectClient);
panel_MQTTTestResult.Open(domain, port.ToString());
}
@@ -77,8 +79,12 @@ namespace Studio.UI
payload = payload
};
panel_MQTTTestResult.AddResult(result);
Image_Check.sprite = connectedSprite;
}
void OnDisconnectClient()
{
Image_Check.sprite = errorSprite;
}
private void OnClickRemoveItemButton()
{
onRemoveMQTTConnectionItem?.Invoke(this);