J'ai besoin d'implémenter un client Websocket en utilisant c ++. J'ai déjà créé un serveur websocket de base avec Ruby. Mais maintenant, je veux tester la connexion en utilisant c/c ++. Existe-t-il des bibliothèques faciles à utiliser pour implémenter des websockets dans c/c ++?
Merci d'avance.
Il y a boost :: asio et Poco.Net et probablement quelques autres, mais les sockets berkeley de C-API ne sont pas si difficiles, donc si vous ne voulez pas utiliser ces bibliothèques, jetez-y un œil.
Edit: Désolé, je vous ai probablement mal compris avec "websockets". Avez-vous regardé ici? http://fr.wikipedia.org/wiki/Comparison_Web_Socket_implementations (Tiré de Client WebSocket C++ simple (version 08 + compatible)? )
Il existe une excellente bibliothèque, Beast.WebSocket, qui s'appuie fortement sur Boost.Asio: http://vinniefalco.github.io/
Voici un exemple de programme qui parle de websocket:
#include <beast/websocket.hpp>
#include <beast/buffers_debug.hpp>
#include <boost/asio.hpp>
#include <iostream>
#include <string>
int main()
{
// Normal boost::asio setup
std::string const Host = "echo.websocket.org";
boost::asio::io_service ios;
boost::asio::ip::tcp::resolver r(ios);
boost::asio::ip::tcp::socket sock(ios);
boost::asio::connect(sock,
r.resolve(boost::asio::ip::tcp::resolver::query{Host, "80"}));
using namespace beast::websocket;
// WebSocket connect and send message using beast
stream<boost::asio::ip::tcp::socket&> ws(sock);
ws.handshake(Host, "/");
ws.write(boost::asio::buffer("Hello, world!"));
// Receive WebSocket message, print and close using beast
beast::streambuf sb;
opcode op;
ws.read(op, sb);
ws.close(close_code::normal);
std::cout <<
beast::debug::buffers_to_string(sb.data()) << "\n";
}
Websocket ++ devrait le faire pour vous. https://github.com/zaphoyd/websocketpp
bien que connaître les versions de Websocket implémentées par le serveur/client soit important.
Peut-être que cela peut encore être utile.
Il existe une bonne bibliothèque websocket développée pour C . Il existe quelques exemples montrant comment créer et gérer un socket Web.
http://libwebsockets.org/trac/libwebsockets (pour plus d'informations) ou https://github.com/warmcat/libwebsockets
Après de longues recherches, j'ai trouvé ce projet pratique qui repose sur POCO. Je vais essayer et poster avec mon expérience.
https://github.com/hannon235/socket.io-poco/blob/master/examples/TestClient/main.cpp
Mettre à jour:
J'ai essayé d'intégrer cette bibliothèque trop de temps. Ce n'est pas encore complètement cuit. Il faut plus de travail avant de l'utiliser dans un contexte de production.