summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Alessandrelli <fabio.alessandrelli@gmail.com>2020-01-24 14:50:53 +0100
committerFabio Alessandrelli <fabio.alessandrelli@gmail.com>2020-01-24 14:50:53 +0100
commit5bd9f14ad9364b3e0331cf10278750741d149c92 (patch)
tree999206960bd6592b02f38f257a2ceb77e809fd34
parent40e41e22540c9b88b5afa1d9eb586bc8ae392d58 (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.cpp2
-rw-r--r--modules/websocket/wsl_peer.cpp4
-rw-r--r--modules/websocket/wsl_server.cpp4
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() {