libre is a generic library for real-time communications with asynchronous I/O support. It is written in portable POSIX source code that conforms to the ANSI C89 and ISO C99 standards. It is robust and fast, with a low memory footprint. It also features RFC compliance and support for IPv4 and IPv6. Protocol implementations include SIP, SDP, RTP/RTCP, BFCP, DNS, STUN/TURN/ICE, HTTP, and WebSockets.
Wslay is a WebSocket library written in C. It implements the protocol version 13 described in RFC 6455. This library offers 2 levels of API: an event-based API and a frame-based low-level API. For the event-based API, it is suitable for non-blocking reactor pattern style. You can set callbacks in various events. For the frame-based API, you can send WebSocket frame directly. Wslay only supports the data transfer part of the WebSocket protocol and does not perform the opening handshake in HTTP. It does not perform any I/O operations for its own. Instead, it offers callbacks for them. This makes Wslay independent of any I/O frameworks, SSL, sockets, etc. It is portable across various platforms, and the application authors can choose I/O frameworks freely.
RMI WebSocket provides a library for remote method invocations between a browser and a Jetty Web Server using the HTML5 WebSocket. The idea is to enable tight method-level integration between the user interface and the server so that patterns such as MVP (Model-View-Presenter) can be applied in a Web environment. The method-level communications between the browser code and the server code allows the developer to think about the Web page and server-side components as objects in a UML world. Details such as the over-the-wire protocols in WebSockets are abstracted away in the process.
QtWebSockets is a pure Qt implementation of WebSockets, both client and server. It is implemented as a Qt source code module (.pri file) that can easily be embedded into existing Qt projects. It has no dependencies other than Qt. It features text and binary sockets, frame-based and message-based signals, proxy support, and strict Unicode checking.
msg-rpc provides bidirectional RPC support over a simple message interface such as WebSocket. Tere are WebSocket examples based on socket.io and sockjs. It just has a simple sendMessage/onMessage interface, with no other dependencies. It supports not only normal RPC, but also RPC Service, which makes RPC pushable (i.e. the server can also send a request to the client and expect some kind of response).