2727
2828WebSocketsServer::WebSocketsServer (uint16_t port) {
2929 _port = port;
30- _server = new WiFiServer (port);
30+ _server = new WEBSOCKETS_NETWORK_SERVER_CLASS (port);
3131
3232 _cbEvent = NULL ;
3333
@@ -240,6 +240,7 @@ void WebSocketsServer::disconnect(uint8_t num) {
240240 }
241241}
242242
243+ #if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
243244/* *
244245 * get an IP for a client
245246 * @param num uint8_t client id
@@ -255,6 +256,7 @@ IPAddress WebSocketsServer::remoteIP(uint8_t num) {
255256
256257 return IPAddress ();
257258}
259+ #endif
258260
259261// #################################################################################
260262// #################################################################################
@@ -363,18 +365,22 @@ bool WebSocketsServer::clientIsConnected(WSclient_t * client) {
363365 */
364366void WebSocketsServer::handleNewClients (void ) {
365367 WSclient_t * client;
368+ #if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
366369 while (_server->hasClient ()) {
370+ #endif
367371 bool ok = false ;
368372 // search free list entry for client
369373 for (uint8_t i = 0 ; i < WEBSOCKETS_SERVER_CLIENT_MAX; i++) {
370374 client = &_clients[i];
371375
372376 // state is not connected or tcp connection is lost
373377 if (!clientIsConnected (client)) {
374-
378+ # if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
375379 // store new connection
376380 client->tcp = new WEBSOCKETS_NETWORK_CLASS (_server->available ());
377-
381+ #else
382+ client->tcp = new WEBSOCKETS_NETWORK_CLASS (_server->available ());
383+ #endif
378384 if (!client->tcp ) {
379385 DEBUG_WEBSOCKETS (" [WS-Client] creating Network class failed!" );
380386 return ;
@@ -387,9 +393,12 @@ void WebSocketsServer::handleNewClients(void) {
387393 // set Timeout for readBytesUntil and readStringUntil
388394 client->tcp ->setTimeout (WEBSOCKETS_TCP_TIMEOUT);
389395 client->status = WSC_HEADER;
390-
396+ # if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
391397 IPAddress ip = client->tcp ->remoteIP ();
392398 DEBUG_WEBSOCKETS (" [WS-Server][%d] new client from %d.%d.%d.%d\n " , client->num , ip[0 ], ip[1 ], ip[2 ], ip[3 ]);
399+ #else
400+ DEBUG_WEBSOCKETS (" [WS-Server][%d] new client\n " , client->num );
401+ #endif
393402 ok = true ;
394403 break ;
395404 }
@@ -398,15 +407,21 @@ void WebSocketsServer::handleNewClients(void) {
398407 if (!ok) {
399408 // no free space to handle client
400409 WEBSOCKETS_NETWORK_CLASS tcpClient = _server->available ();
401- IPAddress ip = tcpClient.remoteIP ();
410+ #if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
411+ IPAddress ip = client->tcp ->remoteIP ();
402412 DEBUG_WEBSOCKETS (" [WS-Server] no free space new client from %d.%d.%d.%d\n " , ip[0 ], ip[1 ], ip[2 ], ip[3 ]);
413+ #else
414+ DEBUG_WEBSOCKETS (" [WS-Server] no free space new client\n " );
415+ #endif
403416 tcpClient.stop ();
404417 }
405418
406419#ifdef ESP8266
407420 delay (0 );
408421#endif
422+ #if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
409423 }
424+ #endif
410425}
411426
412427/* *
0 commit comments