libwebsockets/lib
Andy Green f32d25051c ws ping pong on idle connections
This adds a new member to the context creation info struct "ws_ping_pong_interval".

If nonzero, it sets the number of seconds that established ws connections are
allowed to be idle before a PING is forced to be sent.  If zero (the default) then
tracking of idle connection is disabled for backwards compatibility.

Timeouts cover both the period between decision to send the ping and it being
sent (because it needs the socket to become writeable), and the period between
the ping being sent and the PONG coming back.

INFO debug logs are issues when the timeout stuff is operating.

You can test the server side by running the test server hacked to set ws_ping_pong_interval
and debug log mask of 15.  Both the mirror protocol and the server-status protocol are
idle if nothing is happening and will trigger the PING / PONG testing.  (You can also
test using lwsws and /etc/lwsws/conf with "ws-pingpong-secs": "20" in the global section)

For client, run the test client with -n -P 20 for 20s interval.  -n stops the test client
writing using the mirror protocol, so it will be idle and trigger the PING / PONGs.

The timeout interval may be up to +10s late, as lws checks for affected connections every
10s.
2016-08-10 21:20:23 +08:00
..
.gitignore Ignoring linux build files 2013-01-09 15:46:11 +08:00
alloc.c Subject: [PATCH] Add custom allocator support using the realloc() interface 2014-12-05 07:25:24 +08:00
base64-decode.c b64decode correct decode of some strings 2016-03-19 07:43:22 +08:00
client-handshake.c CLIENT_CONNECTION_ERROR add strings 2016-07-14 08:57:27 +08:00
client-parser.c ws ping pong on idle connections 2016-08-10 21:20:23 +08:00
client.c ws ping pong on idle connections 2016-08-10 21:20:23 +08:00
context.c ws ping pong on idle connections 2016-08-10 21:20:23 +08:00
daemonize.c Revert changes in daemonize.c from commit 22d6f39e7f 2016-06-02 13:00:13 +08:00
extension-permessage-deflate.c replace LWS_MAX_SOCKET_IO_BUF with context creation info pt_serv_buf_size 2016-05-19 12:34:35 +08:00
extension-permessage-deflate.h extension permessage deflate 2016-01-11 11:34:01 +08:00
extension.c documentation convert to doxygen 2016-07-14 08:57:27 +08:00
getifaddrs.c whitespace trailing mass cleanout 2015-12-14 08:52:03 +08:00
getifaddrs.h Use LWS_HAVE_ instead of just HAVE_ 2015-10-12 09:53:17 +08:00
handshake.c asserts log which 2016-05-13 10:27:48 +08:00
header.c documentation convert to doxygen 2016-07-14 08:57:27 +08:00
hpack.c http2 update integration 2016-04-13 11:53:40 +08:00
http2.c http2 handle error path on ensure_user_space 2016-04-23 09:36:18 +08:00
huftable.h http2 hpack basic decode ok including huff 2014-10-12 08:38:16 +08:00
lejp-conf.c ws ping pong on idle connections 2016-08-10 21:20:23 +08:00
lejp.c documentation convert to doxygen 2016-07-14 08:57:27 +08:00
lejp.h documentation convert to doxygen 2016-07-14 08:57:27 +08:00
lextable-strings.h http2 update integration 2016-04-13 11:53:40 +08:00
lextable.h http2 update integration 2016-04-13 11:53:40 +08:00
libev.c plugins 2016-04-07 09:38:08 +08:00
libuv.c windows adapt plugin name format vs functions 2016-05-25 21:44:30 +08:00
libwebsockets.c ws ping pong on idle connections 2016-08-10 21:20:23 +08:00
libwebsockets.h ws ping pong on idle connections 2016-08-10 21:20:23 +08:00
lws-plat-mbed3.c documentation convert to doxygen 2016-07-14 08:57:27 +08:00
lws-plat-mbed3.cpp windows detect client connection error 2016-07-14 08:57:27 +08:00
lws-plat-unix.c windows detect client connection error 2016-07-14 08:57:27 +08:00
lws-plat-win.c Recheck slot when an FD gets closed and make formatting consistent 2016-07-14 08:57:28 +08:00
minihuf.c whitespace trailing mass cleanout 2015-12-14 08:52:03 +08:00
minilex.c whitespace trailing mass cleanout 2015-12-14 08:52:03 +08:00
output.c ws ping pong on idle connections 2016-08-10 21:20:23 +08:00
parsers.c ws ping pong on idle connections 2016-08-10 21:20:23 +08:00
pollfd.c documentation convert to doxygen 2016-07-14 08:57:27 +08:00
private-libwebsockets.h ws ping pong on idle connections 2016-08-10 21:20:23 +08:00
rewrite.c check oom on lws_malloc 2016-05-12 21:04:33 +08:00
server-handshake.c plugin table dirlisting 2016-07-14 08:57:28 +08:00
server.c ws ping pong on idle connections 2016-08-10 21:20:23 +08:00
service.c ws ping pong on idle connections 2016-08-10 21:20:23 +08:00
sha-1.c polarssl implementation 2016-04-18 20:05:43 +08:00
smtp.c documentation convert to doxygen 2016-07-14 08:57:27 +08:00
ssl-client.c client ssl add flag to control server cert hostname check 2016-07-14 08:57:28 +08:00
ssl-http2.c http2 update integration 2016-04-13 11:53:40 +08:00
ssl-server.c openssl allow set clear of ssl options from info 2016-06-10 11:09:27 +08:00
ssl.c ws ping pong on idle connections 2016-08-10 21:20:23 +08:00