6 for (
int i = 0; i < n; ++i) {
7 KURLYK_PRINT <<
"Iteration " << i + 1 <<
" of " << n << std::endl;
12 client.
on_event([](std::unique_ptr<kurlyk::WebSocketEventData> event) {
13 switch (event->event_type) {
15 KURLYK_PRINT <<
"Client 1: Connection opened" << std::endl;
18 KURLYK_PRINT <<
"Client 1: Message received: " <<
event->message << std::endl;
21 KURLYK_PRINT <<
"Client 1: Connection closed: " <<
event->message
22 <<
"; Status code: " <<
event->status_code << std::endl;
25 KURLYK_PRINT <<
"Client 1: Error: " <<
event->error_code.message() << std::endl;
29 for (
int j = 0; j < 100; ++j) {
41 KURLYK_PRINT <<
"Assigned rate limit ID: " << rate_limit_id << std::endl;
42 client.
on_event([rate_limit_id](std::unique_ptr<kurlyk::WebSocketEventData> event) {
43 static int counter = 0;
44 switch (event->event_type) {
46 KURLYK_PRINT <<
"Client 2: Connection opened" << std::endl;
48 event->sender->send_message(
"Hello, WebSocket! Counter: " + std::to_string(counter++), rate_limit_id);
51 KURLYK_PRINT <<
"Client 2: Message received: " <<
event->message << std::endl;
53 event->sender->send_message(
"Hello again! Counter: " + std::to_string(counter++), rate_limit_id);
56 KURLYK_PRINT <<
"Client 2: Connection closed: " <<
event->message
57 <<
"; Status code: " <<
event->status_code << std::endl;
60 KURLYK_PRINT <<
"Client 2: Error: " <<
event->error_code.message() << std::endl;
64 for (
int j = 0; j < 100; ++j) {
70 std::this_thread::sleep_for(std::chrono::seconds(60));
71 KURLYK_PRINT <<
"Client 2: Disconnecting..." << std::endl;
Provides an interface for managing WebSocket connections, including configuration,...
void on_event(std::function< void(std::unique_ptr< WebSocketEventData >)> callback)
Sets a callback for WebSocket events.
bool disconnect_and_wait()
Disconnects from the WebSocket server, blocking until the disconnection completes.
long add_rate_limit_rps(long requests_per_second)
Adds a rate limit based on Requests Per Second (RPS).
std::future< bool > connect()
Asynchronously connects to the WebSocket server.
std::future< bool > disconnect()
Asynchronously disconnects from the WebSocket server.
Main header file for the Kurlyk library, providing HTTP and WebSocket support.
@ WS_ERROR
Error occurred.
@ WS_MESSAGE
Message received.
@ WS_CLOSE
Connection closed.
@ WS_OPEN
Connection established.
void test_connect_disconnect(int n)