diff --git a/README.md b/README.md index bfcb9d74..badf7b89 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ ix::WebSocket webSocket; std::string url("ws://localhost:8080/"); webSocket.setUrl(url); -// Optional heart beat, sent every 45 seconds when there isn't any traffic +// Optional heart beat, sent every 45 seconds when there is not any traffic // to make sure that load balancers do not kill an idle connection. webSocket.setHeartBeatPeriod(45); @@ -142,11 +142,11 @@ Large frames are broken up into smaller chunks or messages to avoid filling up t * There is no text support for sending data, only the binary protocol is supported. Sending json or text over the binary protocol works well. * Automatic reconnection works at the TCP socket level, and will detect remote end disconnects. However, if the device/computer network become unreachable (by turning off wifi), it is quite hard to reliably and timely detect it at the socket level using `recv` and `send` error codes. [Here](https://stackoverflow.com/questions/14782143/linux-socket-how-to-detect-disconnected-network-in-a-client-program) is a good discussion on the subject. This behavior is consistent with other runtimes such as node.js. One way to detect a disconnected device with low level C code is to do a name resolution with DNS but this can be expensive. Mobile devices have good and reliable API to do that. -* The server code is using select to detect incoming data, and creates one OS thread per connection. This isn't as scalable as strategies using epoll or kqueue. +* The server code is using select to detect incoming data, and creates one OS thread per connection. This is not as scalable as strategies using epoll or kqueue. ## C++ code organization -Here's a simplistic diagram which explains how the code is structured in term of class/modules. +Here is a simplistic diagram which explains how the code is structured in term of class/modules. ``` +-----------------------+ --- Public @@ -198,7 +198,7 @@ If the connection was closed and sending failed, the return value will be set to 1. WebSocket_ReadyState_Connecting - The connection is not yet open. 2. WebSocket_ReadyState_Open - The connection is open and ready to communicate. 3. WebSocket_ReadyState_Closing - The connection is in the process of closing. -4. WebSocket_MessageType_Close - The connection is closed or couldn't be opened. +4. WebSocket_MessageType_Close - The connection is closed or could not be opened. ### Open and Close notifications @@ -308,7 +308,7 @@ websocket.ping("ping data, optional (empty string is ok): limited to 125 bytes l ### Heartbeat. You can configure an optional heart beat / keep-alive, sent every 45 seconds -when there isn't any traffic to make sure that load balancers do not kill an +when there is not any traffic to make sure that load balancers do not kill an idle connection. ```