-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathdemo_echo_client.cpp
More file actions
47 lines (39 loc) · 1.36 KB
/
Copy pathdemo_echo_client.cpp
File metadata and controls
47 lines (39 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
Interactive and basic Websockets Client that connect to a public echo server
After running this demo, there will be a websockets client connected
to `echo.websocket.org` and every message the user will enter will be
sent to the server. Incoming messages will be printed once the user
enters an input (or an empty line, just an Enter)
Enter "exit" to close the connection and end the program.
The code:
1. Sets up a client connection
2. Reads an input from the user
2-1. If the user didnt enter an empty line, the client sends the message to the server
2-2. If the user enters "exit", the program closes the connection
3. Polls for incoming messages and events.
*/
#include <tiny_websockets/client.hpp>
#include <tiny_websockets/server.hpp>
#include <iostream>
using namespace websockets;
int main() {
WebsocketsClient client;
client.connect("ws://echo.websocket.org/");
client.onMessage([&](WebsocketsClient&, WebsocketsMessage message){
std::cout << "Got Data: " << message.data() << std::endl;
});
WSString line;
while(client.available()) {
std::cout << "Enter input: ";
std::getline(std::cin, line);
if(line != "") {
if(line == "exit") client.close();
else {
client.poll();
client.send(line);
}
}
client.poll();
}
std::cout << "Exited Gracefully" << std::endl;
}