Merge pull request #32750 from Faless/js/fix_ws_refactor
Fix HTML5 build after 67a4c30
.
This commit is contained in:
commit
3564547208
6 changed files with 26 additions and 10 deletions
|
@ -64,9 +64,15 @@ EMSCRIPTEN_KEEPALIVE void _esws_on_close(void *obj, int code, char *reason, int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Error EMWSClient::connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const PoolVector<String> p_protocols, const Vector<String> p_custom_headers) {
|
Error EMWSClient::connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const Vector<String> p_protocols, const Vector<String> p_custom_headers) {
|
||||||
|
|
||||||
|
String proto_string;
|
||||||
|
for (int i = 0; i < p_protocols.size(); i++) {
|
||||||
|
if (i != 0)
|
||||||
|
proto_string += ",";
|
||||||
|
proto_string += p_protocols[i];
|
||||||
|
}
|
||||||
|
|
||||||
String proto_string = p_protocols.join(",");
|
|
||||||
String str = "ws://";
|
String str = "ws://";
|
||||||
|
|
||||||
if (p_custom_headers.size()) {
|
if (p_custom_headers.size()) {
|
||||||
|
|
|
@ -50,7 +50,7 @@ public:
|
||||||
bool _is_connecting;
|
bool _is_connecting;
|
||||||
|
|
||||||
Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets);
|
Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets);
|
||||||
Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const PoolVector<String> p_protocol = PoolVector<String>(), const Dictionary p_custom_headers = Dictionary());
|
Error connect_to_host(String p_host, String p_path, uint16_t p_port, bool p_ssl, const Vector<String> p_protocol = Vector<String>(), const Vector<String> p_custom_headers = Vector<String>());
|
||||||
Ref<WebSocketPeer> get_peer(int p_peer_id) const;
|
Ref<WebSocketPeer> get_peer(int p_peer_id) const;
|
||||||
void disconnect_from_host(int p_code = 1000, String p_reason = "");
|
void disconnect_from_host(int p_code = 1000, String p_reason = "");
|
||||||
IP_Address get_connected_host() const;
|
IP_Address get_connected_host() const;
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#include "emws_server.h"
|
#include "emws_server.h"
|
||||||
#include "core/os/os.h"
|
#include "core/os/os.h"
|
||||||
|
|
||||||
Error EMWSServer::listen(int p_port, PoolVector<String> p_protocols, bool gd_mp_api) {
|
Error EMWSServer::listen(int p_port, Vector<String> p_protocols, bool gd_mp_api) {
|
||||||
|
|
||||||
return FAILED;
|
return FAILED;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ class EMWSServer : public WebSocketServer {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets);
|
Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets);
|
||||||
Error listen(int p_port, PoolVector<String> p_protocols = PoolVector<String>(), bool gd_mp_api = false);
|
Error listen(int p_port, Vector<String> p_protocols = Vector<String>(), bool gd_mp_api = false);
|
||||||
void stop();
|
void stop();
|
||||||
bool is_listening() const;
|
bool is_listening() const;
|
||||||
bool has_peer(int p_id) const;
|
bool has_peer(int p_id) const;
|
||||||
|
|
|
@ -181,8 +181,12 @@ Error WSLClient::connect_to_host(String p_host, String p_path, uint16_t p_port,
|
||||||
_connection = _tcp;
|
_connection = _tcp;
|
||||||
_use_ssl = p_ssl;
|
_use_ssl = p_ssl;
|
||||||
_host = p_host;
|
_host = p_host;
|
||||||
_protocols.clear();
|
// Strip edges from protocols.
|
||||||
_protocols.append_array(p_protocols);
|
_protocols.resize(p_protocols.size());
|
||||||
|
String *pw = _protocols.ptrw();
|
||||||
|
for (int i = 0; i < p_protocols.size(); i++) {
|
||||||
|
pw[i] = p_protocols[i].strip_edges();
|
||||||
|
}
|
||||||
|
|
||||||
_key = WSLPeer::generate_key();
|
_key = WSLPeer::generate_key();
|
||||||
// TODO custom extra headers (allow overriding this too?)
|
// TODO custom extra headers (allow overriding this too?)
|
||||||
|
|
|
@ -80,11 +80,12 @@ bool WSLServer::PendingPeer::_parse_request(const Vector<String> p_protocols) {
|
||||||
if (headers.has("sec-websocket-protocol")) {
|
if (headers.has("sec-websocket-protocol")) {
|
||||||
Vector<String> protos = headers["sec-websocket-protocol"].split(",");
|
Vector<String> protos = headers["sec-websocket-protocol"].split(",");
|
||||||
for (int i = 0; i < protos.size(); i++) {
|
for (int i = 0; i < protos.size(); i++) {
|
||||||
|
String proto = protos[i].strip_edges();
|
||||||
// Check if we have the given protocol
|
// Check if we have the given protocol
|
||||||
for (int j = 0; j < p_protocols.size(); j++) {
|
for (int j = 0; j < p_protocols.size(); j++) {
|
||||||
if (protos[i] != p_protocols[j])
|
if (proto != p_protocols[j])
|
||||||
continue;
|
continue;
|
||||||
protocol = protos[i];
|
protocol = proto;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Found a protocol
|
// Found a protocol
|
||||||
|
@ -158,7 +159,12 @@ Error WSLServer::listen(int p_port, const Vector<String> p_protocols, bool gd_mp
|
||||||
ERR_FAIL_COND_V(is_listening(), ERR_ALREADY_IN_USE);
|
ERR_FAIL_COND_V(is_listening(), ERR_ALREADY_IN_USE);
|
||||||
|
|
||||||
_is_multiplayer = gd_mp_api;
|
_is_multiplayer = gd_mp_api;
|
||||||
_protocols.append_array(p_protocols);
|
// Strip edges from protocols.
|
||||||
|
_protocols.resize(p_protocols.size());
|
||||||
|
String *pw = _protocols.ptrw();
|
||||||
|
for (int i = 0; i < p_protocols.size(); i++) {
|
||||||
|
pw[i] = p_protocols[i].strip_edges();
|
||||||
|
}
|
||||||
_server->listen(p_port);
|
_server->listen(p_port);
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
|
|
Loading…
Reference in a new issue