2015-12-22 27 views
6

Linux'ta C++ kullanarak bir WebSocket API'ye erişmek istiyorum. Farklı librarys (libwebsockets veya websocketpp gibi) gördüm, ancak hangisini kullanmam gerektiğinden emin değilim. Yapmam gereken tek şey, API'ye bağlanması ve bir dizeye veri almasıdır. Yani çok temel ve basit bir çözüm, çok karmaşık bir şey arıyorum. Belki bir kişi bir WebSocket kütüphanesiyle deneyim kazanmış olabilir mi?WebSocket Kitaplığı

cevap

9

Üst düzey bir API için, 'u cpprest kitaplığından kullanabilirsiniz {0 sarar websocketpp}. echo server karşı çalışır

Bir örnek uygulama:

İşte
#include <iostream> 
#include <cpprest/ws_client.h> 

using namespace std; 
using namespace web; 
using namespace web::websockets::client; 

int main() { 
    websocket_client client; 
    client.connect("ws://echo.websocket.org").wait(); 

    websocket_outgoing_message out_msg; 
    out_msg.set_utf8_message("test"); 
    client.send(out_msg).wait(); 

    client.receive().then([](websocket_incoming_message in_msg) { 
    return in_msg.extract_string(); 
    }).then([](string body) { 
    cout << body << endl; // test 
    }).wait(); 

    client.close().wait(); 

    return 0; 
} 

.wait() yöntem görevleri beklemek için kullanılır, ancak kod kolayca asenkron şekilde/O I yapmak değiştirilebilir.

+0

Teşekkür ederiz! Ayrıca bir kanala aboneliği destekliyor mu? – Bobface

+0

Ayrıca, kendi sayfasında ** Microsoft projesi ** diyor. Yani muhtemelen Linux sistemlerinde çalışmayacak mı? – Bobface

+2

Oldukça sağlam ve Windows, OS X, iOS ve ** Linux (Android dahil) ** üzerinde çalışır. Aslında bu örneği Ubuntu 15.10'da kodluyorum ve çalıştırdım. –