🖥️ Removes event registration
This commit is contained in:
@@ -30,7 +30,6 @@ class AnalyticsService
|
|||||||
|
|
||||||
void begin()
|
void begin()
|
||||||
{
|
{
|
||||||
_socket->registerEvent(EVENT_ANALYTICS);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ BatteryService::BatteryService(EventSocket *socket) : _socket(socket)
|
|||||||
|
|
||||||
void BatteryService::begin()
|
void BatteryService::begin()
|
||||||
{
|
{
|
||||||
_socket->registerEvent(EVENT_BATTERY);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BatteryService::batteryEvent()
|
void BatteryService::batteryEvent()
|
||||||
|
|||||||
@@ -106,8 +106,6 @@ DownloadFirmwareService::DownloadFirmwareService(PsychicHttpServer *server,
|
|||||||
|
|
||||||
void DownloadFirmwareService::begin()
|
void DownloadFirmwareService::begin()
|
||||||
{
|
{
|
||||||
_socket->registerEvent(EVENT_DOWNLOAD_OTA);
|
|
||||||
|
|
||||||
_server->on(GITHUB_FIRMWARE_PATH,
|
_server->on(GITHUB_FIRMWARE_PATH,
|
||||||
HTTP_POST,
|
HTTP_POST,
|
||||||
_securityManager->wrapCallback(
|
_securityManager->wrapCallback(
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ public:
|
|||||||
|
|
||||||
void begin()
|
void begin()
|
||||||
{
|
{
|
||||||
_socket->registerEvent(_event);
|
|
||||||
_socket->onEvent(_event, std::bind(&EventEndpoint::updateState, this, std::placeholders::_1, std::placeholders::_2));
|
_socket->onEvent(_event, std::bind(&EventEndpoint::updateState, this, std::placeholders::_1, std::placeholders::_2));
|
||||||
_socket->onSubscribe(_event, std::bind(&EventEndpoint::syncState, this, std::placeholders::_1, std::placeholders::_2));
|
_socket->onSubscribe(_event, std::bind(&EventEndpoint::syncState, this, std::placeholders::_1, std::placeholders::_2));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,19 +21,6 @@ void EventSocket::begin()
|
|||||||
ESP_LOGV("EventSocket", "Registered event socket endpoint: %s", EVENT_SERVICE_PATH);
|
ESP_LOGV("EventSocket", "Registered event socket endpoint: %s", EVENT_SERVICE_PATH);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventSocket::registerEvent(String event)
|
|
||||||
{
|
|
||||||
if (!isEventValid(event))
|
|
||||||
{
|
|
||||||
ESP_LOGV("EventSocket", "Registering event: %s", event.c_str());
|
|
||||||
events.push_back(event);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ESP_LOGW("EventSocket", "Event already registered: %s", event.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void EventSocket::onWSOpen(PsychicWebSocketClient *client)
|
void EventSocket::onWSOpen(PsychicWebSocketClient *client)
|
||||||
{
|
{
|
||||||
ESP_LOGI("EventSocket", "ws[%s][%u] connect", client->remoteIP().toString().c_str(), client->socket());
|
ESP_LOGI("EventSocket", "ws[%s][%u] connect", client->remoteIP().toString().c_str(), client->socket());
|
||||||
@@ -67,16 +54,9 @@ esp_err_t EventSocket::onFrame(PsychicWebSocketRequest *request, httpd_ws_frame
|
|||||||
if (event == "subscribe")
|
if (event == "subscribe")
|
||||||
{
|
{
|
||||||
// only subscribe to events that are registered
|
// only subscribe to events that are registered
|
||||||
if (isEventValid(doc["data"].as<String>()))
|
|
||||||
{
|
|
||||||
client_subscriptions[doc["data"]].push_back(request->client()->socket());
|
client_subscriptions[doc["data"]].push_back(request->client()->socket());
|
||||||
handleSubscribeCallbacks(doc["data"], String(request->client()->socket()));
|
handleSubscribeCallbacks(doc["data"], String(request->client()->socket()));
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
ESP_LOGW("EventSocket", "Client tried to subscribe to unregistered event: %s", doc["data"].as<String>().c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (event == "unsubscribe")
|
else if (event == "unsubscribe")
|
||||||
{
|
{
|
||||||
client_subscriptions[doc["data"]].remove(request->client()->socket());
|
client_subscriptions[doc["data"]].remove(request->client()->socket());
|
||||||
@@ -104,13 +84,6 @@ void EventSocket::emit(const char *event, const char *payload)
|
|||||||
|
|
||||||
void EventSocket::emit(const char *event, const char *payload, const char *originId, bool onlyToSameOrigin)
|
void EventSocket::emit(const char *event, const char *payload, const char *originId, bool onlyToSameOrigin)
|
||||||
{
|
{
|
||||||
// Only process valid events
|
|
||||||
if (!isEventValid(String(event)))
|
|
||||||
{
|
|
||||||
ESP_LOGW("EventSocket", "Method tried to emit unregistered event: %s", event);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int originSubscriptionId = originId[0] ? atoi(originId) : -1;
|
int originSubscriptionId = originId[0] ? atoi(originId) : -1;
|
||||||
xSemaphoreTake(clientSubscriptionsMutex, portMAX_DELAY);
|
xSemaphoreTake(clientSubscriptionsMutex, portMAX_DELAY);
|
||||||
auto &subscriptions = client_subscriptions[event];
|
auto &subscriptions = client_subscriptions[event];
|
||||||
@@ -171,26 +144,11 @@ void EventSocket::handleSubscribeCallbacks(String event, const String &originId)
|
|||||||
|
|
||||||
void EventSocket::onEvent(String event, EventCallback callback)
|
void EventSocket::onEvent(String event, EventCallback callback)
|
||||||
{
|
{
|
||||||
if (!isEventValid(event))
|
|
||||||
{
|
|
||||||
ESP_LOGW("EventSocket", "Method tried to register unregistered event: %s", event.c_str());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
event_callbacks[event].push_back(callback);
|
event_callbacks[event].push_back(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventSocket::onSubscribe(String event, SubscribeCallback callback)
|
void EventSocket::onSubscribe(String event, SubscribeCallback callback)
|
||||||
{
|
{
|
||||||
if (!isEventValid(event))
|
|
||||||
{
|
|
||||||
ESP_LOGW("EventSocket", "Method tried to subscribe to unregistered event: %s", event.c_str());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
subscribe_callbacks[event].push_back(callback);
|
subscribe_callbacks[event].push_back(callback);
|
||||||
ESP_LOGI("EventSocket", "onSubscribe for event: %s", event.c_str());
|
ESP_LOGI("EventSocket", "onSubscribe for event: %s", event.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EventSocket::isEventValid(String event)
|
|
||||||
{
|
|
||||||
return std::find(events.begin(), events.end(), event) != events.end();
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ public:
|
|||||||
|
|
||||||
void begin();
|
void begin();
|
||||||
|
|
||||||
void registerEvent(String event);
|
|
||||||
|
|
||||||
void onEvent(String event, EventCallback callback);
|
void onEvent(String event, EventCallback callback);
|
||||||
|
|
||||||
void onSubscribe(String event, SubscribeCallback callback);
|
void onSubscribe(String event, SubscribeCallback callback);
|
||||||
@@ -39,15 +37,12 @@ private:
|
|||||||
SecurityManager *_securityManager;
|
SecurityManager *_securityManager;
|
||||||
AuthenticationPredicate _authenticationPredicate;
|
AuthenticationPredicate _authenticationPredicate;
|
||||||
|
|
||||||
std::vector<String> events;
|
|
||||||
std::map<String, std::list<int>> client_subscriptions;
|
std::map<String, std::list<int>> client_subscriptions;
|
||||||
std::map<String, std::list<EventCallback>> event_callbacks;
|
std::map<String, std::list<EventCallback>> event_callbacks;
|
||||||
std::map<String, std::list<SubscribeCallback>> subscribe_callbacks;
|
std::map<String, std::list<SubscribeCallback>> subscribe_callbacks;
|
||||||
void handleEventCallbacks(String event, JsonObject &jsonObject, int originId);
|
void handleEventCallbacks(String event, JsonObject &jsonObject, int originId);
|
||||||
void handleSubscribeCallbacks(String event, const String &originId);
|
void handleSubscribeCallbacks(String event, const String &originId);
|
||||||
|
|
||||||
bool isEventValid(String event);
|
|
||||||
|
|
||||||
void onWSOpen(PsychicWebSocketClient *client);
|
void onWSOpen(PsychicWebSocketClient *client);
|
||||||
void onWSClose(PsychicWebSocketClient *client);
|
void onWSClose(PsychicWebSocketClient *client);
|
||||||
esp_err_t onFrame(PsychicWebSocketRequest *request, httpd_ws_frame *frame);
|
esp_err_t onFrame(PsychicWebSocketRequest *request, httpd_ws_frame *frame);
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ public:
|
|||||||
|
|
||||||
void begin()
|
void begin()
|
||||||
{
|
{
|
||||||
_socket->registerEvent(EVENT_IMU);
|
|
||||||
#if FT_ENABLED(FT_IMU)
|
#if FT_ENABLED(FT_IMU)
|
||||||
_imu.initialize();
|
_imu.initialize();
|
||||||
imu_success = _imu.testConnection();
|
imu_success = _imu.testConnection();
|
||||||
|
|||||||
@@ -30,11 +30,6 @@ class MotionService
|
|||||||
|
|
||||||
void begin()
|
void begin()
|
||||||
{
|
{
|
||||||
_socket->registerEvent(INPUT_EVENT);
|
|
||||||
_socket->registerEvent(ANGLES_EVENT);
|
|
||||||
_socket->registerEvent(MODE_EVENT);
|
|
||||||
_socket->registerEvent(POSITION_EVENT);
|
|
||||||
|
|
||||||
_socket->onEvent(INPUT_EVENT, [&](JsonObject &root, int originId) { handleInput(root, originId); });
|
_socket->onEvent(INPUT_EVENT, [&](JsonObject &root, int originId) { handleInput(root, originId); });
|
||||||
|
|
||||||
_socket->onEvent(MODE_EVENT, [&](JsonObject &root, int originId) { handleMode(root, originId); });
|
_socket->onEvent(MODE_EVENT, [&](JsonObject &root, int originId) { handleMode(root, originId); });
|
||||||
|
|||||||
@@ -48,8 +48,6 @@ void WiFiSettingsService::initWiFi()
|
|||||||
|
|
||||||
void WiFiSettingsService::begin()
|
void WiFiSettingsService::begin()
|
||||||
{
|
{
|
||||||
_socket->registerEvent(EVENT_RSSI);
|
|
||||||
|
|
||||||
_httpEndpoint.begin();
|
_httpEndpoint.begin();
|
||||||
_eventEndpoint.begin();
|
_eventEndpoint.begin();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user