У имеющихся решений есть одна, но весьма важная проблема , которой уже 7 месяцев и решения её пока нет. В мастер ветке websocket++ ивент луп boost::asio::io_service запрятан в глубь библиотеки и где-то в этой глубине что-то явно не так :)
Между тем старая (0.1) версия websocket++ этой проблемы лишена и работает достаточно стабильно - именно её я взял за основу.
В итоге есть очень легковесная реализация SocketIO на qml + js работающая поверх с++ websocket, экспортируемого в qml.
Что в итоге:
import QtQuick 1.1
import "." as Elem
Rectangle {
function newsHandler(body) {
console.log('We have news', JSON.stringify(body));
socket.emit('my other event', 'hello man!');
}
width: 360
height: 360
MouseArea {
anchors.fill: parent
onClicked: {
socket.connect();
}
}
Elem.SocketIO {
id: socket
uri: 'ws://localhost:8080'
Component.onCompleted: {
registerEvent('news', newsHandler);
}
}
}