2016-05-31 4 views
0

Bitte schlagen Sie einige sehr grundlegende WebSocket Client/Serve-Bibliotheken für C++ vor.WebSocket C++ Client und Server Lib

Ich benutzte mongoose.c, aber ich bekomme sehr seltsame Verhaltensweisen, wenn ich die Callback-Funktionen auf Instanzfunktionen setze (mit ein bisschen Pointer-Magie).

Es braucht keine SSL oder irgendetwas, es ist für einen Forschungsprototyp. Ich möchte etwas, das nur einen einfachen Server erstellen und Verbindungen spinnen kann. Dann einige Callback-Funktionen definieren oder aktiv abfragen. Für den Kunden, einfach senden/empfangen.

Wenn möglich, keine Boost. Ich habe keine Abhängigkeiten, also möchte ich etwas, das als Header/cpp kommt.

Weitere Daten wie pro Antrag auf merkwürdiges Verhalten:

Websockets verweigern alle Verbindungen, wenn VS Projekt im Debug-Modus kompiliert, wenn ‚mongoose.c‘ verwenden. Es hat damit zu tun, mit der /MTd Flagge zu kompilieren. Jetzt kann ich diese Flagge ausschalten, aber es bricht mehrere andere Bibliotheken. Ich habe es bei Cesanta angemeldet, aber ich bezweifle, dass sie mir in absehbarer Zeit antworten werden.

Ich brauche im Grunde WebSockets, die Ströme lesen und schreiben können. So ähnlich wie eine TCP-Socket-Bibliothek. Ich sende nur JSON Objekte über und es gibt keine Unterzeichnung oder Handshake.

Ich gehe durch https://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations, um zu sehen, ob ich etwas nützliches finden kann.

+0

https://github.com/Gregwar/mongoose-cpp – strangeqargo

+0

@strangeqargo: Sie erkennen, dass Sie auf der Grundlage der exakt gleichen Bibliothek vorgeschlagen, dass ich sagte ich benutze, oder? mongoose-cpp ist alt und veraltet – unixsnob

+0

du hast nichts über C++ wrapper gesagt, vielleicht verwendest du plain c ;-) – strangeqargo

Antwort

0

Haben Sie sich Libuv angesehen? Es ist in C geschrieben, aber es ist die Netzwerkschicht unter Node.js, so dass es ziemlich gut funktioniert. Hier

ist einige Tutorial, das ich erwähnenswert denken: Building a multiplayer game server with Libuv