add disconnect functions

void disconnect(void);
   void disconnect(uint8_t num);
This commit is contained in:
Markus Sattler
2015-05-23 09:20:44 +02:00
parent 27a9a22908
commit 0ca1503e52
3 changed files with 36 additions and 6 deletions

View File

@ -37,7 +37,7 @@
#endif
#endif
//#define DEBUG_WEBSOCKETS(...) Serial1.printf( __VA_ARGS__ );
#define DEBUG_WEBSOCKETS(...) Serial1.printf( __VA_ARGS__ );
#ifndef DEBUG_WEBSOCKETS
#define DEBUG_WEBSOCKETS(...)

View File

@ -63,12 +63,12 @@ void WebSocketsServer::begin(void) {
_server->begin();
}
/**
* called in arduino loop
*/
void WebSocketsServer::loop(void) {
handleNewClients();
handleClientData();
}
/**
@ -183,10 +183,37 @@ void WebSocketsServer::broadcastBIN(uint8_t * payload, size_t length) {
}
}
void WebSocketsServer::broadcastBIN(const uint8_t * payload, size_t length) {
void WebSocketsServer::broadcastBIN(const uint8_t * payload, size_t length) {
broadcastBIN((uint8_t *) payload, length);
}
/**
* disconnect all clients
*/
void WebSocketsServer::disconnect(void) {
WSclient_t * client;
for(uint8_t i = 0; i < WEBSOCKETS_SERVER_CLIENT_MAX; i++) {
client = &_clients[i];
if(clientIsConnected(client)) {
WebSockets::clientDisconnect(client, 1000);
}
}
}
/**
* disconnect one client
* @param num
*/
void WebSocketsServer::disconnect(uint8_t num) {
if(num >= WEBSOCKETS_SERVER_CLIENT_MAX) {
return;
}
WSclient_t * client = &_clients[num];
if(clientIsConnected(client)) {
WebSockets::clientDisconnect(client, 1000);
}
}
//#################################################################################
//#################################################################################
//#################################################################################
@ -422,7 +449,7 @@ void WebSocketsServer::handleHeader(WSclient_t * client) {
WebSockets::sendFrame(client, WSop_ping);
if(_cbEvent) {
_cbEvent(client->num, WStype_CONNECTED, (uint8_t *)client->cUrl.c_str(), client->cUrl.length());
_cbEvent(client->num, WStype_CONNECTED, (uint8_t *) client->cUrl.c_str(), client->cUrl.length());
}
} else {

View File

@ -83,6 +83,9 @@ public:
void broadcastBIN(uint8_t * payload, size_t length);
void broadcastBIN(const uint8_t * payload, size_t length);
void disconnect(void);
void disconnect(uint8_t num);
private:
uint16_t _port;