websocket and http client and server library, with TLS support and very few dependencies
Go to file
Benjamin Sergeant 95a97a197a Fragmentation: for sent messages which are compressed, the continuation fragments should not have the rsv1 bit set (fix all autobahn tests for zlib compression 12.X)
Websocket Server / do a case insensitive string search when looking for an Upgrade header whose value is websocket. (some client use WebSocket with some upper-case characters)
2019-09-04 18:23:56 -07:00
CMake - mbedtls and zlib are searched with find_package, and we use the vendored version if nothing is found 2019-06-10 11:18:27 -07:00
docker add new docker file to run the unittest with tsan on latest Ubuntu 2019-06-30 23:37:25 -07:00
docs Fragmentation: for sent messages which are compressed, the continuation fragments should not have the rsv1 bit set (fix all autobahn tests for zlib compression 12.X) 2019-09-04 18:23:56 -07:00
ixwebsocket Fragmentation: for sent messages which are compressed, the continuation fragments should not have the rsv1 bit set (fix all autobahn tests for zlib compression 12.X) 2019-09-04 18:23:56 -07:00
test Sending invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling) 2019-09-03 14:12:40 -07:00
third_party add better line editing capability to ws connect, thanks to linenoise-cpp 2019-07-25 11:54:50 -07:00
ws ws autobahn / use condition variables for stopping test case + add more logging on errors 2019-09-04 12:21:54 -07:00
.clang-format (clang format) fix indent and make (rarely) accessor/setters in class on a single line 2019-05-31 00:53:14 -07:00
.dockerignore fix cobra to sentry + change ws docker file to use alpine (much smaller footprint) 2019-05-31 00:43:22 -07:00
.gitignore New option to cap the max wait between reconnection attempts. Still default to 10s. (setMaxWaitBetweenReconnectionRetries) (#108) 2019-08-30 12:46:35 -07:00
.pre-commit-config.yaml CobraConnection: sets a unique id field for all messages sent to [cobra](https://github.com/machinezone/cobra). 2019-08-26 09:51:37 -07:00
.travis.yml (CI) linux: install libmbedtls 2019-08-14 21:49:43 -07:00
appveyor.yml update appveyor windows build file 2019-05-06 17:50:55 -07:00
CMakeLists.txt Sending invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling) 2019-09-03 14:12:40 -07:00
DOCKER_VERSION Fragmentation: for sent messages which are compressed, the continuation fragments should not have the rsv1 bit set (fix all autobahn tests for zlib compression 12.X) 2019-09-04 18:23:56 -07:00
docker-compose.yml Feature/ws windows (#86) 2019-06-02 20:46:20 -07:00
Dockerfile fix Dockerfile link 2019-06-05 19:38:44 -07:00
LICENSE.txt First import 2018-09-27 14:57:19 -07:00
makefile ws autobahn / report progress with spdlog::info to get timing info 2019-09-04 10:16:32 -07:00
mkdocs.yml Add md doc made with mkdocs 2019-08-26 21:25:45 -07:00
README.md ws autobahn / report progress with spdlog::info to get timing info 2019-09-04 10:16:32 -07:00

Hello world

Alt text

IXWebSocket is a C++ library for WebSocket client and server development. It has minimal dependencies (no boost), is very simple to use and support everything you'll likely need for websocket dev (SSL, deflate compression, compiles on most platforms, etc...). HTTP client and server code is also available, but it hasn't received as much testing.

It is been used on big mobile video game titles sending and receiving tons of messages since 2017 (iOS and Android).

Interested ? Go read the docs ! If things don't work as expected, please create an issue in github, or even better a pull request if you know how to fix your problem.

IXWebSocket is actively being developed, check out the changelog to know what's cooking. If you are looking for a real time messaging service (the chat-like 'server' your websocket code will talk to) with many features such as history, backed by Redis, look at cobra.

IXWebSocket is not yet autobahn compliant, but we are working on changing this. See the current compliance test results. The only tests that are still failing are the Websocket Compression ones (see section 12 and 13).