From 6f1afc1bc189e7ec0ecec12166c8987f860df01d Mon Sep 17 00:00:00 2001 From: Patrick Balsiger Date: Mon, 19 Nov 2018 22:58:44 +0100 Subject: [PATCH] chat backend --- src/var/illuchat/main.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/var/illuchat/main.cpp b/src/var/illuchat/main.cpp index 2a437c3..3f8e40e 100644 --- a/src/var/illuchat/main.cpp +++ b/src/var/illuchat/main.cpp @@ -44,16 +44,23 @@ void setup() webServerPlugin->server->serveStatic(PIXEL_CONFIG_FILE, SPIFFS, "pixelConfig.json"); webServerPlugin->server->serveStatic(MQTT_CONFIG_FILE, SPIFFS, "mqttConfig.json"); - const char* mqttChatTopic = (String(MQTT_ROOT_TOPIC) + "/out/chat/log").c_str(); - sprocket->subscribe("chat/log", [mqttChatTopic](String msg) { - PRINT_MSG(Serial, "CHAT", msg.c_str()); - }); - sprocket->subscribe("mqtt/connect", [mqttChatTopic](String msg) { + const char* mqChatTopic = "wirelos/chat/log"; + const char* outChatTopic = "out/chat/log"; + const char* chatUser = "user"; + + sprocket->subscribe("mqtt/connect", [mqChatTopic, outChatTopic, chatUser](String msg) { if (msg.length() > 0) { - mqttPlugin->client->subscribe(mqttChatTopic); - sprocket->subscribe("/out/chat/log", [](String msg) { + mqttPlugin->client->subscribe(mqChatTopic); + sprocket->subscribe(mqChatTopic, [](String msg) { PRINT_MSG(Serial, "CHAT", String("incoming: " + msg).c_str()); + webApiPlugin->ws->textAll(msg); + }); + + // send message from WS to this topic + sprocket->subscribe(outChatTopic, [mqChatTopic, chatUser](String msg) { + PRINT_MSG(Serial, "CHAT", msg.c_str()); + mqttPlugin->client->publish(mqChatTopic, (String(chatUser) + ": " + msg).c_str()); }); } });