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.
- 100% written in modern C++11
- Compatible with socket.io 1.0+ protocol
- Binary support
- Automatic JSON encoding
- Multiplex support
- Similar API to the Socket.IO JS client
- Cross platform
Full overview of API can be seen here
The APIs are similar to the JS client.
sio::client h;
h.connect("http://127.0.0.1:3000");
// 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_shared<std::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.
void OnMessage(sio::event &) {
// handle login message
// post to UI thread if any UI updating.
}
h.socket()->on("new message", &OnMessage);
h.socket()->on("login", [&](sio::event& ev) {
// handle login message
// post to UI thread if any UI updating.
});
class MessageHandler {
public:
void OnMessage(sio::event &);
};
MessageHandler mh;
h.socket()->on("new message",std::bind( &MessageHandler::OnMessage,&mh,std::placeholders::_1));
h.socket("/chat")->emit("add user", username);
Full overview of API can be seen here
MIT