Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
U
uniset2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UniSet project repositories
uniset2
Commits
4269d228
Commit
4269d228
authored
Sep 25, 2017
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(LogDB): доделал настройки для websockets
parent
6dff7fc9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
2 deletions
+38
-2
LogDB.cc
extensions/LogDB/LogDB.cc
+28
-1
LogDB.h
extensions/LogDB/LogDB.h
+10
-1
No files found.
extensions/LogDB/LogDB.cc
View file @
4269d228
...
@@ -213,6 +213,10 @@ LogDB::LogDB( const string& name, int argc, const char* const* argv, const strin
...
@@ -213,6 +213,10 @@ LogDB::LogDB( const string& name, int argc, const char* const* argv, const strin
}
}
#ifndef DISABLE_REST_API
#ifndef DISABLE_REST_API
wsHeartbeatTime_sec
=
(
float
)
uniset
::
getArgPInt
(
"--"
+
prefix
+
"ws-heartbeat-time"
,
argc
,
argv
,
it
.
getProp
(
"wsPingTime"
),
wsHeartbeatTime_sec
)
/
1000.0
;
wsSendTime_sec
=
(
float
)
uniset
::
getArgPInt
(
"--"
+
prefix
+
"ws-send-time"
,
argc
,
argv
,
it
.
getProp
(
"wsSendTime"
),
wsSendTime_sec
)
/
1000.0
;
wsMaxSend
=
uniset
::
getArgPInt
(
"--"
+
prefix
+
"ws-max-send"
,
argc
,
argv
,
it
.
getProp
(
"wsMaxSend"
),
wsMaxSend
);
httpHost
=
uniset
::
getArgParam
(
"--"
+
prefix
+
"httpserver-host"
,
argc
,
argv
,
"localhost"
);
httpHost
=
uniset
::
getArgParam
(
"--"
+
prefix
+
"httpserver-host"
,
argc
,
argv
,
"localhost"
);
httpPort
=
uniset
::
getArgInt
(
"--"
+
prefix
+
"httpserver-port"
,
argc
,
argv
,
"8080"
);
httpPort
=
uniset
::
getArgInt
(
"--"
+
prefix
+
"httpserver-port"
,
argc
,
argv
,
"8080"
);
dblog1
<<
myname
<<
"(init): http server parameters "
<<
httpHost
<<
":"
<<
httpPort
<<
endl
;
dblog1
<<
myname
<<
"(init): http server parameters "
<<
httpHost
<<
":"
<<
httpPort
<<
endl
;
...
@@ -220,7 +224,6 @@ LogDB::LogDB( const string& name, int argc, const char* const* argv, const strin
...
@@ -220,7 +224,6 @@ LogDB::LogDB( const string& name, int argc, const char* const* argv, const strin
try
try
{
{
/*! \FIXME: доделать конфигурирование параметров */
Poco
::
Net
::
HTTPServerParams
*
httpParams
=
new
Poco
::
Net
::
HTTPServerParams
;
Poco
::
Net
::
HTTPServerParams
*
httpParams
=
new
Poco
::
Net
::
HTTPServerParams
;
int
maxQ
=
uniset
::
getArgPInt
(
"--"
+
prefix
+
"httpserver-max-queued"
,
argc
,
argv
,
it
.
getProp
(
"httpMaxQueued"
),
100
);
int
maxQ
=
uniset
::
getArgPInt
(
"--"
+
prefix
+
"httpserver-max-queued"
,
argc
,
argv
,
it
.
getProp
(
"httpMaxQueued"
),
100
);
...
@@ -432,6 +435,9 @@ void LogDB::help_print()
...
@@ -432,6 +435,9 @@ void LogDB::help_print()
cout
<<
"websockets: "
<<
endl
;
cout
<<
"websockets: "
<<
endl
;
cout
<<
"--prefix-ws-max num - Максимальное количество websocket-ов"
<<
endl
;
cout
<<
"--prefix-ws-max num - Максимальное количество websocket-ов"
<<
endl
;
cout
<<
"--prefix-ws-heartbeat-time msec - Период сердцебиения в соединении. По умолчанию: 3000 мсек"
<<
endl
;
cout
<<
"--prefix-ws-send-time msec - Период посылки сообщений. По умолчанию: 500 мсек"
<<
endl
;
cout
<<
"--prefix-ws-max num - Максимальное число сообщений посылаемых за один раз. По умолчанию: 200"
<<
endl
;
cout
<<
"logservers: "
<<
endl
;
cout
<<
"logservers: "
<<
endl
;
cout
<<
"--prefix-ls-check-connection-sec sec - Период проверки соединения с логсервером"
<<
endl
;
cout
<<
"--prefix-ls-check-connection-sec sec - Период проверки соединения с логсервером"
<<
endl
;
...
@@ -1229,6 +1235,9 @@ std::shared_ptr<LogDB::LogWebSocket> LogDB::newWebSocket( Poco::Net::HTTPServerR
...
@@ -1229,6 +1235,9 @@ std::shared_ptr<LogDB::LogWebSocket> LogDB::newWebSocket( Poco::Net::HTTPServerR
{
{
uniset_rwmutex_wrlock
lock
(
wsocksMutex
);
uniset_rwmutex_wrlock
lock
(
wsocksMutex
);
ws
=
make_shared
<
LogWebSocket
>
(
req
,
resp
,
log
);
ws
=
make_shared
<
LogWebSocket
>
(
req
,
resp
,
log
);
ws
->
setHearbeatTime
(
wsHeartbeatTime_sec
);
ws
->
setSendPeriod
(
wsSendTime_sec
);
ws
->
setMaxSendCount
(
wsMaxSend
);
ws
->
dblog
=
dblog
;
ws
->
dblog
=
dblog
;
wsocks
.
emplace_back
(
ws
);
wsocks
.
emplace_back
(
ws
);
}
}
...
@@ -1473,6 +1482,24 @@ void LogDB::LogWebSocket::waitCompletion()
...
@@ -1473,6 +1482,24 @@ void LogDB::LogWebSocket::waitCompletion()
finish
.
wait
(
lk
);
finish
.
wait
(
lk
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
LogDB
::
LogWebSocket
::
setHearbeatTime
(
const
double
&
sec
)
{
if
(
sec
>
0
)
ping_sec
=
sec
;
}
// -----------------------------------------------------------------------------
void
LogDB
::
LogWebSocket
::
setSendPeriod
(
const
double
&
sec
)
{
if
(
sec
>
0
)
send_sec
=
sec
;
}
// -----------------------------------------------------------------------------
void
LogDB
::
LogWebSocket
::
setMaxSendCount
(
size_t
val
)
{
if
(
val
>
0
)
maxsend
=
val
;
}
// -----------------------------------------------------------------------------
void
LogDB
::
httpWebSocketPage
(
std
::
ostream
&
ostr
,
Poco
::
Net
::
HTTPServerRequest
&
req
,
Poco
::
Net
::
HTTPServerResponse
&
resp
)
void
LogDB
::
httpWebSocketPage
(
std
::
ostream
&
ostr
,
Poco
::
Net
::
HTTPServerRequest
&
req
,
Poco
::
Net
::
HTTPServerResponse
&
resp
)
{
{
using
Poco
::
Net
::
HTTPResponse
;
using
Poco
::
Net
::
HTTPResponse
;
...
...
extensions/LogDB/LogDB.h
View file @
4269d228
...
@@ -313,6 +313,10 @@ namespace uniset
...
@@ -313,6 +313,10 @@ namespace uniset
std
::
string
httpHost
=
{
""
};
std
::
string
httpHost
=
{
""
};
int
httpPort
=
{
0
};
int
httpPort
=
{
0
};
double
wsHeartbeatTime_sec
=
{
3
.
0
};
double
wsSendTime_sec
=
{
0
.
5
};
size_t
wsMaxSend
=
{
200
};
/*! класс реализует работу с websocket через eventloop
/*! класс реализует работу с websocket через eventloop
* Из-за того, что поступление логов может быть достаточно быстрым
* Из-за того, что поступление логов может быть достаточно быстрым
* чтобы не "завалить" браузер кучей сообщений,
* чтобы не "завалить" браузер кучей сообщений,
...
@@ -345,6 +349,11 @@ namespace uniset
...
@@ -345,6 +349,11 @@ namespace uniset
void
waitCompletion
();
void
waitCompletion
();
// настройка
void
setHearbeatTime
(
const
double
&
sec
);
void
setSendPeriod
(
const
double
&
sec
);
void
setMaxSendCount
(
size_t
val
);
protected
:
protected
:
void
write
();
void
write
();
...
@@ -401,7 +410,7 @@ namespace uniset
...
@@ -401,7 +410,7 @@ namespace uniset
{
{
public
:
public
:
LogDBRequestHandlerFactory
(
LogDB
*
l
)
:
logdb
(
l
)
{}
LogDBRequestHandlerFactory
(
LogDB
*
l
)
:
logdb
(
l
)
{}
virtual
~
LogDBRequestHandlerFactory
()
{}
;
virtual
~
LogDBRequestHandlerFactory
()
{}
virtual
Poco
::
Net
::
HTTPRequestHandler
*
createRequestHandler
(
const
Poco
::
Net
::
HTTPServerRequest
&
req
)
override
;
virtual
Poco
::
Net
::
HTTPRequestHandler
*
createRequestHandler
(
const
Poco
::
Net
::
HTTPServerRequest
&
req
)
override
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment