From 5bd9f14ad9364b3e0331cf10278750741d149c92 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Fri, 24 Jan 2020 14:50:53 +0100 Subject: [PATCH] Lower WebSocket latency, fixes. WSLPeer now tries to flush packet queue after put_packet call. WSLServer::listen correctly returns TCP_Server::listen return value. --- modules/websocket/websocket_server.cpp | 2 +- modules/websocket/wsl_peer.cpp | 4 ++++ modules/websocket/wsl_server.cpp | 4 +--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/websocket/websocket_server.cpp b/modules/websocket/websocket_server.cpp index 76e88d72b9a..a7ced65543e 100644 --- a/modules/websocket/websocket_server.cpp +++ b/modules/websocket/websocket_server.cpp @@ -114,7 +114,7 @@ NetworkedMultiplayerPeer::ConnectionStatus WebSocketServer::get_connection_statu return CONNECTION_CONNECTED; return CONNECTION_DISCONNECTED; -}; +} bool WebSocketServer::is_server() const { diff --git a/modules/websocket/wsl_peer.cpp b/modules/websocket/wsl_peer.cpp index 2f7f84c893b..d7914295e91 100644 --- a/modules/websocket/wsl_peer.cpp +++ b/modules/websocket/wsl_peer.cpp @@ -243,6 +243,10 @@ Error WSLPeer::put_packet(const uint8_t *p_buffer, int p_buffer_size) { msg.msg_length = p_buffer_size; wslay_event_queue_msg(_data->ctx, &msg); + if (wslay_event_send(_data->ctx) < 0) { + close_now(); + return FAILED; + } return OK; } diff --git a/modules/websocket/wsl_server.cpp b/modules/websocket/wsl_server.cpp index c3dd79a89cf..44bfb4441d7 100644 --- a/modules/websocket/wsl_server.cpp +++ b/modules/websocket/wsl_server.cpp @@ -165,9 +165,7 @@ Error WSLServer::listen(int p_port, const Vector p_protocols, bool gd_mp for (int i = 0; i < p_protocols.size(); i++) { pw[i] = p_protocols[i].strip_edges(); } - _server->listen(p_port, bind_ip); - - return OK; + return _server->listen(p_port, bind_ip); } void WSLServer::poll() {