diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2020-01-24 14:50:53 +0100 |
---|---|---|
committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2020-01-24 14:50:53 +0100 |
commit | 5bd9f14ad9364b3e0331cf10278750741d149c92 (patch) | |
tree | 999206960bd6592b02f38f257a2ceb77e809fd34 | |
parent | 40e41e22540c9b88b5afa1d9eb586bc8ae392d58 (diff) |
Lower WebSocket latency, fixes.
WSLPeer now tries to flush packet queue after put_packet call.
WSLServer::listen correctly returns TCP_Server::listen return value.
-rw-r--r-- | modules/websocket/websocket_server.cpp | 2 | ||||
-rw-r--r-- | modules/websocket/wsl_peer.cpp | 4 | ||||
-rw-r--r-- | 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 76e88d72b9..a7ced65543 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 2f7f84c893..d7914295e9 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 c3dd79a89c..44bfb4441d 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<String> 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() { |