cppwamp
cppwamp copied to clipboard
C++ client library for the WAMP protocol.
Consider making `Session` objects more thread safe. This might entail that `internal::WampMessage` objects can no longer be reused in `internal::Client`, but must be constructed every time a message needs to...
Make `Session` support any Boost.Asio *completion token* via template member functions, instead of providing separate mix-in classes for coroutines, futures, etc.
Verify that the library can be used with Visual Studio 2013. Identify, if necessary, the C++11 features that would need to be worked around to support VS2013.
Consider adding a `Service` class which serves as a facade to a common `Session` instance. Multiple `Service` objects could target the same `Session` instance. A `Service` would take care of...
TCP transports should optionally make use of the RawSocket transport-level [PING](https://github.com/tavendo/WAMP/blob/master/spec/advanced.md#framing) messages to help keep long-lived connections open. The ping interval should be configurable by the user.
[WebSocket++](https://github.com/zaphoyd/websocketpp) could be used for this. Wrappers compatible with the `Transport` and `TransportBuffer` concepts would need to be written.
Provide a transport compatible with the [WAMP LongPoll Transport](https://github.com/tavendo/WAMP/blob/master/spec/advanced.md#longpoll-transport) specification.
Implement [challenge response authentication](https://github.com/tavendo/WAMP/blob/master/spec/advanced.md#challenge-response-authentication), as per the advanced spec.
Provide automatic reconnection facilities. If a connection is dropped unexpectedly, CppWAMP would re-establish the session using the list of connector objects. It should also re-register RPCs and re-subscribe to events.