WebSocket++
0.8.1
C++ websocket client/server library
tutorials
utility_server
step1.cpp
1
/*
2
* Copyright (c) 2015, Peter Thorson. All rights reserved.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are met:
6
* * Redistributions of source code must retain the above copyright
7
* notice, this list of conditions and the following disclaimer.
8
* * Redistributions in binary form must reproduce the above copyright
9
* notice, this list of conditions and the following disclaimer in the
10
* documentation and/or other materials provided with the distribution.
11
* * Neither the name of the WebSocket++ Project nor the
12
* names of its contributors may be used to endorse or promote products
13
* derived from this software without specific prior written permission.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
* ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY
19
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
*/
26
27
// **NOTE:** This file is a snapshot of the WebSocket++ utility server tutorial.
28
// Additional related material can be found in the tutorials/utility_server
29
// directory of the WebSocket++ repository.
30
31
// The ASIO_STANDALONE define is necessary to use the standalone version of Asio.
32
// Remove if you are using Boost Asio.
33
#
define
ASIO_STANDALONE
34
35
#
include
<
websocketpp
/
config
/
asio_no_tls
.
hpp
>
36
#
include
<
websocketpp
/
server
.
hpp
>
37
38
#
include
<
functional
>
39
40
typedef
websocketpp
::
server
<
websocketpp
::config::
asio
> server;
41
42
class
utility_server
{
43
public
:
44
utility_server() {
45
// Set logging settings
46
m_endpoint.set_error_channels(websocketpp::log::elevel::all);
47
m_endpoint.set_access_channels(websocketpp::log::alevel::all ^ websocketpp::log::alevel::frame_payload);
48
49
// Initialize Asio
50
m_endpoint.init_asio();
51
}
52
53
void
run() {
54
// Listen on port 9002
55
m_endpoint.listen(9002);
56
57
// Queues a connection accept operation
58
m_endpoint.start_accept();
59
60
// Start the Asio io_service run loop
61
m_endpoint.run();
62
}
63
private
:
64
server m_endpoint;
65
};
66
67
int
main() {
68
utility_server
s;
69
s.run();
70
return
0;
71
}
utility_server
Definition:
step1.cpp:42
websocketpp::config::asio
Server config with asio transport and TLS disabled.
Definition:
asio_no_tls.hpp:38
websocketpp::versions_supported
static std::vector< int > const versions_supported(helper, helper+4)
Container that stores the list of protocol versions supported.
websocketpp::server
Server endpoint role based on the given config.
Definition:
server_endpoint.hpp:44
Generated by
1.8.20