Skip to content

Commit f2357c0

Browse files
ebshimizuEvan Shimizu
authored andcommitted
Use websocket++ logging as much as possible
Sample code and Visual Studio project added.
1 parent 048ef67 commit f2357c0

File tree

11 files changed

+512
-19
lines changed

11 files changed

+512
-19
lines changed

.gitattributes

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto
3+
4+
# Custom for Visual Studio
5+
*.cs diff=csharp
6+
*.sln merge=union
7+
*.csproj merge=union
8+
*.vbproj merge=union
9+
*.fsproj merge=union
10+
*.dbproj merge=union
11+
12+
# Standard to msysgit
13+
*.doc diff=astextplain
14+
*.DOC diff=astextplain
15+
*.docx diff=astextplain
16+
*.DOCX diff=astextplain
17+
*.dot diff=astextplain
18+
*.DOT diff=astextplain
19+
*.pdf diff=astextplain
20+
*.PDF diff=astextplain
21+
*.rtf diff=astextplain
22+
*.RTF diff=astextplain

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,3 @@ pip-log.txt
161161

162162
# Mac crap
163163
.DS_Store
164-
165-
# temp
166-
msvc/*

msvc/sample/sample.sln

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 11.00
3+
# Visual Studio 2010
4+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sample", "sample\sample.vcxproj", "{E7C9F048-BCCE-428C-A2D9-FE399516ACDF}"
5+
EndProject
6+
Global
7+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
8+
Debug|Win32 = Debug|Win32
9+
Release|Win32 = Release|Win32
10+
EndGlobalSection
11+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
12+
{E7C9F048-BCCE-428C-A2D9-FE399516ACDF}.Debug|Win32.ActiveCfg = Debug|Win32
13+
{E7C9F048-BCCE-428C-A2D9-FE399516ACDF}.Debug|Win32.Build.0 = Debug|Win32
14+
{E7C9F048-BCCE-428C-A2D9-FE399516ACDF}.Release|Win32.ActiveCfg = Release|Win32
15+
{E7C9F048-BCCE-428C-A2D9-FE399516ACDF}.Release|Win32.Build.0 = Release|Win32
16+
EndGlobalSection
17+
GlobalSection(SolutionProperties) = preSolution
18+
HideSolutionNode = FALSE
19+
EndGlobalSection
20+
EndGlobal

msvc/sample/sample/main.cpp

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/* Socket.io client C++ demo
2+
* Evan Shimizu, June 2012
3+
*
4+
* Demonstrates basic usage of the socket.io client.
5+
* Sets up a connection, registers an event handler, and sends an event.
6+
* The demo socket.io server emits an "example" event in response.
7+
*/
8+
9+
#include "stdafx.h"
10+
#include <socket_io_client.hpp>
11+
12+
using namespace socketio;
13+
14+
int main(int /*argc*/, char* /*argv*/ []) {
15+
// websocket++ expects urls to begin with "ws://" not "http://"
16+
std::string uri = "ws://localhost:8082/";
17+
18+
try {
19+
// Create and link handler to websocket++ callbacks.
20+
socketio_client_handler_ptr handler(new socketio_client_handler());
21+
client::connection_ptr con;
22+
client endpoint(handler);
23+
24+
// Set log level. Leave these unset for no logging, or only set a few for selective logging.
25+
endpoint.elog().set_level(websocketpp::log::elevel::RERROR);
26+
endpoint.elog().set_level(websocketpp::log::elevel::FATAL);
27+
endpoint.elog().set_level(websocketpp::log::elevel::WARN);
28+
endpoint.alog().set_level(websocketpp::log::alevel::DEVEL);
29+
30+
std::string socket_io_uri = handler->perform_handshake(uri);
31+
con = endpoint.get_connection(socket_io_uri);
32+
33+
// The previous two lines can be combined:
34+
// con = endpoint.get_connection(handler->perform_handshake(uri));
35+
36+
endpoint.connect(con);
37+
38+
boost::thread t(boost::bind(&client::run, &endpoint, false));
39+
40+
// Wait for a sec before sending stuff
41+
while (!handler->connected()) {
42+
Sleep(1);
43+
}
44+
45+
handler->bind_event("example", &socketio_events::example);
46+
47+
std::getchar();
48+
49+
handler->emit("test", "hello!");
50+
51+
std::getchar();
52+
53+
endpoint.stop(false);
54+
}
55+
catch (std::exception& e) {
56+
std::cerr << "Exception: " << e.what() << std::endl;
57+
std::getchar();
58+
}
59+
}

msvc/sample/sample/sample.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// sample.cpp : Defines the entry point for the console application.
2+
//
3+
4+
#include "stdafx.h"
5+
6+
7+
int _tmain(int argc, _TCHAR* argv[])
8+
{
9+
return 0;
10+
}
11+

msvc/sample/sample/sample.vcxproj

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug|Win32">
5+
<Configuration>Debug</Configuration>
6+
<Platform>Win32</Platform>
7+
</ProjectConfiguration>
8+
<ProjectConfiguration Include="Release|Win32">
9+
<Configuration>Release</Configuration>
10+
<Platform>Win32</Platform>
11+
</ProjectConfiguration>
12+
</ItemGroup>
13+
<ItemGroup>
14+
<ClCompile Include="..\..\..\lib\websocketpp\src\base64\base64.cpp" />
15+
<ClCompile Include="..\..\..\lib\websocketpp\src\md5\md5.c" />
16+
<ClCompile Include="..\..\..\lib\websocketpp\src\messages\data.cpp" />
17+
<ClCompile Include="..\..\..\lib\websocketpp\src\network_utilities.cpp" />
18+
<ClCompile Include="..\..\..\lib\websocketpp\src\processors\hybi_header.cpp" />
19+
<ClCompile Include="..\..\..\lib\websocketpp\src\processors\hybi_util.cpp" />
20+
<ClCompile Include="..\..\..\lib\websocketpp\src\rng\blank_rng.cpp" />
21+
<ClCompile Include="..\..\..\lib\websocketpp\src\rng\boost_rng.cpp" />
22+
<ClCompile Include="..\..\..\lib\websocketpp\src\sha1\sha1.cpp" />
23+
<ClCompile Include="..\..\..\lib\websocketpp\src\uri.cpp" />
24+
<ClCompile Include="..\..\..\src\socket_io_client.cpp" />
25+
<ClCompile Include="main.cpp" />
26+
<ClCompile Include="stdafx.cpp" />
27+
</ItemGroup>
28+
<ItemGroup>
29+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\allocators.h" />
30+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\document.h" />
31+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\encodedstream.h" />
32+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\encodings.h" />
33+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\filereadstream.h" />
34+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\filestream.h" />
35+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\filewritestream.h" />
36+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\internal\pow10.h" />
37+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\internal\stack.h" />
38+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\internal\strfunc.h" />
39+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\prettywriter.h" />
40+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\rapidjson.h" />
41+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\reader.h" />
42+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\stringbuffer.h" />
43+
<ClInclude Include="..\..\..\lib\rapidjson\include\rapidjson\writer.h" />
44+
<ClInclude Include="..\..\..\lib\websocketpp\src\base64\base64.h" />
45+
<ClInclude Include="..\..\..\lib\websocketpp\src\common.hpp" />
46+
<ClInclude Include="..\..\..\lib\websocketpp\src\connection.hpp" />
47+
<ClInclude Include="..\..\..\lib\websocketpp\src\endpoint.hpp" />
48+
<ClInclude Include="..\..\..\lib\websocketpp\src\http\constants.hpp" />
49+
<ClInclude Include="..\..\..\lib\websocketpp\src\http\parser.hpp" />
50+
<ClInclude Include="..\..\..\lib\websocketpp\src\logger\logger.hpp" />
51+
<ClInclude Include="..\..\..\lib\websocketpp\src\md5\md5.h" />
52+
<ClInclude Include="..\..\..\lib\websocketpp\src\md5\md5.hpp" />
53+
<ClInclude Include="..\..\..\lib\websocketpp\src\messages\control.hpp" />
54+
<ClInclude Include="..\..\..\lib\websocketpp\src\messages\data.hpp" />
55+
<ClInclude Include="..\..\..\lib\websocketpp\src\network_utilities.hpp" />
56+
<ClInclude Include="..\..\..\lib\websocketpp\src\processors\hybi.hpp" />
57+
<ClInclude Include="..\..\..\lib\websocketpp\src\processors\hybi_header.hpp" />
58+
<ClInclude Include="..\..\..\lib\websocketpp\src\processors\hybi_legacy.hpp" />
59+
<ClInclude Include="..\..\..\lib\websocketpp\src\processors\hybi_util.hpp" />
60+
<ClInclude Include="..\..\..\lib\websocketpp\src\processors\processor.hpp" />
61+
<ClInclude Include="..\..\..\lib\websocketpp\src\rng\blank_rng.hpp" />
62+
<ClInclude Include="..\..\..\lib\websocketpp\src\rng\boost_rng.hpp" />
63+
<ClInclude Include="..\..\..\lib\websocketpp\src\roles\client.hpp" />
64+
<ClInclude Include="..\..\..\lib\websocketpp\src\roles\server.hpp" />
65+
<ClInclude Include="..\..\..\lib\websocketpp\src\sha1\sha1.h" />
66+
<ClInclude Include="..\..\..\lib\websocketpp\src\shared_const_buffer.hpp" />
67+
<ClInclude Include="..\..\..\lib\websocketpp\src\sockets\plain.hpp" />
68+
<ClInclude Include="..\..\..\lib\websocketpp\src\sockets\socket_base.hpp" />
69+
<ClInclude Include="..\..\..\lib\websocketpp\src\sockets\tls.hpp" />
70+
<ClInclude Include="..\..\..\lib\websocketpp\src\uri.hpp" />
71+
<ClInclude Include="..\..\..\lib\websocketpp\src\utf8_validator\utf8_validator.hpp" />
72+
<ClInclude Include="..\..\..\lib\websocketpp\src\websocketpp.hpp" />
73+
<ClInclude Include="..\..\..\lib\websocketpp\src\websocket_frame.hpp" />
74+
<ClInclude Include="..\..\..\src\socket_io_client.hpp" />
75+
<ClInclude Include="stdafx.h" />
76+
</ItemGroup>
77+
<PropertyGroup Label="Globals">
78+
<ProjectGuid>{E7C9F048-BCCE-428C-A2D9-FE399516ACDF}</ProjectGuid>
79+
<Keyword>Win32Proj</Keyword>
80+
<RootNamespace>sample</RootNamespace>
81+
</PropertyGroup>
82+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
83+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
84+
<ConfigurationType>Application</ConfigurationType>
85+
<UseDebugLibraries>true</UseDebugLibraries>
86+
<CharacterSet>Unicode</CharacterSet>
87+
</PropertyGroup>
88+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
89+
<ConfigurationType>Application</ConfigurationType>
90+
<UseDebugLibraries>false</UseDebugLibraries>
91+
<WholeProgramOptimization>true</WholeProgramOptimization>
92+
<CharacterSet>Unicode</CharacterSet>
93+
</PropertyGroup>
94+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
95+
<ImportGroup Label="ExtensionSettings">
96+
</ImportGroup>
97+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
98+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
99+
</ImportGroup>
100+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
101+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
102+
</ImportGroup>
103+
<PropertyGroup Label="UserMacros" />
104+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
105+
<LinkIncremental>true</LinkIncremental>
106+
<IncludePath>..\..\..\src;$(BOOSTROOT);..\..\..\lib\websocketpp\src;..\..\..\lib\rapidjson\include;$(IncludePath)</IncludePath>
107+
<LibraryPath>C:\Program Files\boost\bin.v2\libs\;$(LibraryPath)</LibraryPath>
108+
</PropertyGroup>
109+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
110+
<LinkIncremental>false</LinkIncremental>
111+
<IncludePath>..\..\..\src;$(BOOSTROOT);..\..\..\lib\websocketpp\src;..\..\..\lib\rapidjson\include;$(IncludePath)</IncludePath>
112+
<LibraryPath>C:\Program Files\boost\bin.v2\libs\;$(LibraryPath)</LibraryPath>
113+
</PropertyGroup>
114+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
115+
<ClCompile>
116+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
117+
<WarningLevel>Level3</WarningLevel>
118+
<Optimization>Disabled</Optimization>
119+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
120+
</ClCompile>
121+
<Link>
122+
<SubSystem>Console</SubSystem>
123+
<GenerateDebugInformation>true</GenerateDebugInformation>
124+
</Link>
125+
</ItemDefinitionGroup>
126+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
127+
<ClCompile>
128+
<WarningLevel>Level3</WarningLevel>
129+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
130+
<Optimization>MaxSpeed</Optimization>
131+
<FunctionLevelLinking>true</FunctionLevelLinking>
132+
<IntrinsicFunctions>true</IntrinsicFunctions>
133+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
134+
</ClCompile>
135+
<Link>
136+
<SubSystem>Console</SubSystem>
137+
<GenerateDebugInformation>true</GenerateDebugInformation>
138+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
139+
<OptimizeReferences>true</OptimizeReferences>
140+
</Link>
141+
</ItemDefinitionGroup>
142+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
143+
<ImportGroup Label="ExtensionTargets">
144+
</ImportGroup>
145+
</Project>

0 commit comments

Comments
 (0)