GitHub - socketio/socket.io-client-cpp: C++11 implementation of Socket.IO client (original) (raw)

Socket.IO C++ Client

Build Status

By virtue of being written in C++, this client works in several different platforms. The examples folder contains an iPhone, QT and Console example chat client! It depends on websocket++ and is inspired by socket.io-clientpp.

Clients with iPhone, QT, Console and web

Compatibility table

C++ Client version Socket.IO server version
1.x / 2.x 3.x / 4.x
2.x (2.x branch) YES YES, with allowEIO3: true
3.x (master branch) NO YES

Features

Note: Only the WebSocket transport is currently implemented (no fallback to HTTP long-polling)

Installation alternatives

Quickstart

** Full overview of API can be seen here **

The APIs are similar to the JS client.

Connect to a server

sio::client h; h.connect("http://127.0.0.1:3000");

Emit an event

// emit event name only: h.socket()->emit("login");

// emit text h.socket()->emit("add user", username);

// emit binary char buf[100]; h.socket()->emit("add user", std::make_sharedstd::string(buf,100));

// emit message object with lambda ack handler h.socket()->emit("add user", string_message::create(username), [&](message::list const& msg) { });

// emit multiple arguments message::list li("sports"); li.push(string_message::create("economics")); socket->emit("categories", li);

Items in message::list will be expanded in server side event callback function as function arguments.

Bind an event

Bind with function pointer

void OnMessage(sio::event &) {

} h.socket()->on("new message", &OnMessage);

Bind with lambda

h.socket()->on("login", [&](sio::event& ev) { //handle login message //post to UI thread if any UI updating. });

Bind with member function

class MessageHandler { public: void OnMessage(sio::event &); }; MessageHandler mh; h.socket()->on("new message",std::bind( &MessageHandler::OnMessage,&mh,std::placeholders::_1));

Using namespace

h.socket("/chat")->emit("add user", username);

** Full overview of API can be seen here **

License

MIT