FskErr KprWebSocketEndpointConnect(KprWebSocketEndpoint self, char *url, char *origin) { FskErr err = kFskErrNone; self->url = FskStrDoCopy(url); bailIfNULL(self->url); bailIfError(FskStrParseUrl(self->url, &self->parts)); if (!KprWebSocketEndpointCheckURL(self)) { bailIfError(kFskErrInvalidParameter); } self->isSecure = (FskStrCompare(self->parts->scheme, "wss") == 0); if (origin) { self->origin = FskStrDoCopy(origin); bailIfNULL(self->origin); } self->state = kKprWebSocketStateConnecting; INVOKE_AFTER1(KprWebSocketEndpointStartConnect, self); bail: return err; }
void KPR_mqttclient_destructor(void *it) { KPR_MQTTClientRecord *self = it; if (self) { INVOKE_AFTER1(KprMQTTClientDispose, self->client); FskMemPtrDispose(self); } }
void KPR_websocketclient(void *it) { KPR_WebSocketClientRecord *self = it; if (self) { if (self->server) { KPR_WebSocketServerClientWillDispose(self->server, self); } self->endpoint->openCallback = NULL; self->endpoint->closeCallback = NULL; self->endpoint->textCallback = NULL; self->endpoint->binaryCallback = NULL; self->endpoint->errorCallback = NULL; INVOKE_AFTER1(KprWebSocketEndpointDispose, self->endpoint); FskMemPtrDispose(self); } }
void KPR_mqttclient_destructor(void *it) { KPR_MQTTClientRecord *self = it; if (self) { self->client->connectCallback = NULL; self->client->subscribeCallback = NULL; self->client->unsubscribeCallback = NULL; self->client->publishCallback = NULL; self->client->messageCallback = NULL; self->client->disconnectCallback = NULL; self->client->errorCallback = NULL; INVOKE_AFTER1(KprMQTTClientDispose, self->client); FskMemPtrDispose(self); } }