If you decide to go for the C ++ route (and this ensures the best performance of any language), there is this open source open source library that does all the hard work for you. Its heading only uses only a pinch. It comes with sample code and documentation: http://vinniefalco.imtqy.com/
Here is the complete program that sends a message to the echo server:
#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"; }
source share