mention disablePerMessageDeflate in the doc
This commit is contained in:
		| @@ -2,6 +2,10 @@ | ||||
|  | ||||
| All changes to this project will be documented in this file. | ||||
|  | ||||
| ## [11.1.0] - 2021-03-16 | ||||
|  | ||||
| (ixwebsocket) Use LEAN_AND_MEAN Windows define to help with undefined link error when building a DLL. Support websocket server disablePerMessageDeflate option correctly. | ||||
|  | ||||
| ## [11.0.9] - 2021-03-07 | ||||
|  | ||||
| (ixwebsocket) Expose setHandshakeTimeout method | ||||
|   | ||||
| @@ -343,6 +343,10 @@ if (!res.first) | ||||
|     return 1; | ||||
| } | ||||
|  | ||||
| // Per message deflate connection is enabled by default. It can be disabled | ||||
| // which might be helpful when running on low power devices such as a Rasbery Pi | ||||
| server.disablePerMessageDeflate(); | ||||
|  | ||||
| // Run the server in the background. Server can be stoped by calling server.stop() | ||||
| server.start(); | ||||
|  | ||||
| @@ -410,6 +414,10 @@ if (!res.first) | ||||
|     return 1; | ||||
| } | ||||
|  | ||||
| // Per message deflate connection is enabled by default. It can be disabled | ||||
| // which might be helpful when running on low power devices such as a Rasbery Pi | ||||
| server.disablePerMessageDeflate(); | ||||
|  | ||||
| // Run the server in the background. Server can be stoped by calling server.stop() | ||||
| server.start(); | ||||
|  | ||||
|   | ||||
| @@ -8,12 +8,12 @@ | ||||
|  | ||||
| // mingw does not have those | ||||
| #if defined(_WIN32) && defined(__GNUC__) | ||||
| const char * inet_ntop(int af, const void * restrict src, char * restrict dst, socklen_t size) | ||||
| const char* inet_ntop(int af, const void* restrict src, char* restrict dst, socklen_t size) | ||||
| { | ||||
|     return nullptr; | ||||
| } | ||||
|  | ||||
| int inet_pton(int af, const char * restrict src, void * restrict dst) | ||||
| int inet_pton(int af, const char* restrict src, void* restrict dst) | ||||
| { | ||||
|     return -1; | ||||
| } | ||||
|   | ||||
| @@ -23,17 +23,18 @@ typedef unsigned long int nfds_t; | ||||
|  | ||||
| // mingw does not know about poll so mock it | ||||
| #if defined(__GNUC__) | ||||
| struct pollfd { | ||||
|    int   fd;         /* file descriptor */ | ||||
|    short events;     /* requested events */ | ||||
|    short revents;    /* returned events */ | ||||
| struct pollfd | ||||
| { | ||||
|     int fd;        /* file descriptor */ | ||||
|     short events;  /* requested events */ | ||||
|     short revents; /* returned events */ | ||||
| }; | ||||
|  | ||||
| #define POLLIN      0x001       /* There is data to read.  */ | ||||
| #define POLLOUT     0x004       /* Writing now will not block.  */ | ||||
| #define POLLERR     0x008       /* Error condition.  */ | ||||
| #define POLLHUP     0x010       /* Hung up.  */ | ||||
| #define POLLNVAL    0x020       /* Invalid polling request.  */ | ||||
| #define POLLIN 0x001   /* There is data to read.  */ | ||||
| #define POLLOUT 0x004  /* Writing now will not block.  */ | ||||
| #define POLLERR 0x008  /* Error condition.  */ | ||||
| #define POLLHUP 0x010  /* Hung up.  */ | ||||
| #define POLLNVAL 0x020 /* Invalid polling request.  */ | ||||
| #endif | ||||
|  | ||||
| #else | ||||
| @@ -54,8 +55,8 @@ struct pollfd { | ||||
|  | ||||
| // mingw does not have those | ||||
| #if defined(_WIN32) && defined(__GNUC__) | ||||
| const char * inet_ntop(int af, const void * restrict src, char * restrict dst, socklen_t size); | ||||
| int inet_pton(int af, const char * restrict src, void * restrict dst); | ||||
| const char* inet_ntop(int af, const void* restrict src, char* restrict dst, socklen_t size); | ||||
| int inet_pton(int af, const char* restrict src, void* restrict dst); | ||||
| #endif | ||||
|  | ||||
| namespace ix | ||||
|   | ||||
| @@ -218,7 +218,9 @@ namespace ix | ||||
|         return status; | ||||
|     } | ||||
|  | ||||
|     WebSocketInitResult WebSocket::connectToSocket(std::unique_ptr<Socket> socket, int timeoutSecs) | ||||
|     WebSocketInitResult WebSocket::connectToSocket(std::unique_ptr<Socket> socket, | ||||
|                                                    int timeoutSecs, | ||||
|                                                    bool enablePerMessageDeflate) | ||||
|     { | ||||
|         { | ||||
|             std::lock_guard<std::mutex> lock(_configMutex); | ||||
| @@ -226,7 +228,8 @@ namespace ix | ||||
|                 _perMessageDeflateOptions, _socketTLSOptions, _enablePong, _pingIntervalSecs); | ||||
|         } | ||||
|  | ||||
|         WebSocketInitResult status = _ws.connectToSocket(std::move(socket), timeoutSecs); | ||||
|         WebSocketInitResult status = | ||||
|             _ws.connectToSocket(std::move(socket), timeoutSecs, enablePerMessageDeflate); | ||||
|         if (!status.success) | ||||
|         { | ||||
|             return status; | ||||
|   | ||||
| @@ -115,7 +115,9 @@ namespace ix | ||||
|         static void invokeTrafficTrackerCallback(size_t size, bool incoming); | ||||
|  | ||||
|         // Server | ||||
|         WebSocketInitResult connectToSocket(std::unique_ptr<Socket>, int timeoutSecs); | ||||
|         WebSocketInitResult connectToSocket(std::unique_ptr<Socket>, | ||||
|                                             int timeoutSecs, | ||||
|                                             bool enablePerMessageDeflate); | ||||
|  | ||||
|         WebSocketTransport _ws; | ||||
|  | ||||
|   | ||||
| @@ -241,7 +241,8 @@ namespace ix | ||||
|         return WebSocketInitResult(true, status, "", headers, path); | ||||
|     } | ||||
|  | ||||
|     WebSocketInitResult WebSocketHandshake::serverHandshake(int timeoutSecs) | ||||
|     WebSocketInitResult WebSocketHandshake::serverHandshake(int timeoutSecs, | ||||
|                                                             bool enablePerMessageDeflate) | ||||
|     { | ||||
|         _requestInitCancellation = false; | ||||
|  | ||||
| @@ -338,7 +339,7 @@ namespace ix | ||||
|         WebSocketPerMessageDeflateOptions webSocketPerMessageDeflateOptions(header); | ||||
|  | ||||
|         // If the client has requested that extension, | ||||
|         if (webSocketPerMessageDeflateOptions.enabled()) | ||||
|         if (webSocketPerMessageDeflateOptions.enabled() && enablePerMessageDeflate) | ||||
|         { | ||||
|             _enablePerMessageDeflate = true; | ||||
|  | ||||
|   | ||||
| @@ -35,7 +35,7 @@ namespace ix | ||||
|                                             int port, | ||||
|                                             int timeoutSecs); | ||||
|  | ||||
|         WebSocketInitResult serverHandshake(int timeoutSecs); | ||||
|         WebSocketInitResult serverHandshake(int timeoutSecs, bool enablePerMessageDeflate); | ||||
|  | ||||
|     private: | ||||
|         std::string genRandomString(const int len); | ||||
|   | ||||
| @@ -129,7 +129,8 @@ namespace ix | ||||
|             _clients.insert(webSocket); | ||||
|         } | ||||
|  | ||||
|         auto status = webSocket->connectToSocket(std::move(socket), _handshakeTimeoutSecs); | ||||
|         auto status = webSocket->connectToSocket( | ||||
|             std::move(socket), _handshakeTimeoutSecs, _enablePerMessageDeflate); | ||||
|         if (status.success) | ||||
|         { | ||||
|             // Process incoming messages and execute callbacks | ||||
|   | ||||
| @@ -169,7 +169,8 @@ namespace ix | ||||
|  | ||||
|     // Server | ||||
|     WebSocketInitResult WebSocketTransport::connectToSocket(std::unique_ptr<Socket> socket, | ||||
|                                                             int timeoutSecs) | ||||
|                                                             int timeoutSecs, | ||||
|                                                             bool enablePerMessageDeflate) | ||||
|     { | ||||
|         std::lock_guard<std::mutex> lock(_socketMutex); | ||||
|  | ||||
| @@ -186,7 +187,7 @@ namespace ix | ||||
|                                               _perMessageDeflateOptions, | ||||
|                                               _enablePerMessageDeflate); | ||||
|  | ||||
|         auto result = webSocketHandshake.serverHandshake(timeoutSecs); | ||||
|         auto result = webSocketHandshake.serverHandshake(timeoutSecs, enablePerMessageDeflate); | ||||
|         if (result.success) | ||||
|         { | ||||
|             setReadyState(ReadyState::OPEN); | ||||
|   | ||||
| @@ -83,7 +83,9 @@ namespace ix | ||||
|                                          int timeoutSecs); | ||||
|  | ||||
|         // Server | ||||
|         WebSocketInitResult connectToSocket(std::unique_ptr<Socket> socket, int timeoutSecs); | ||||
|         WebSocketInitResult connectToSocket(std::unique_ptr<Socket> socket, | ||||
|                                             int timeoutSecs, | ||||
|                                             bool enablePerMessageDeflate); | ||||
|  | ||||
|         PollResult poll(); | ||||
|         WebSocketSendInfo sendBinary(const std::string& message, | ||||
|   | ||||
| @@ -6,4 +6,4 @@ | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| #define IX_WEBSOCKET_VERSION "11.0.9" | ||||
| #define IX_WEBSOCKET_VERSION "11.1.0" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user