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://";
|
||||
|
||||
if (p_custom_headers.size()) {
|
||||
|
|
|
@ -50,7 +50,7 @@ public:
|
|||
bool _is_connecting;
|
||||
|
||||
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;
|
||||
void disconnect_from_host(int p_code = 1000, String p_reason = "");
|
||||
IP_Address get_connected_host() const;
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
#include "emws_server.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;
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ class EMWSServer : public WebSocketServer {
|
|||
|
||||
public:
|
||||
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();
|
||||
bool is_listening() 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;
|
||||
_use_ssl = p_ssl;
|
||||
_host = p_host;
|
||||
_protocols.clear();
|
||||
_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();
|
||||
}
|
||||
|
||||
_key = WSLPeer::generate_key();
|
||||
// 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")) {
|
||||
Vector<String> protos = headers["sec-websocket-protocol"].split(",");
|
||||
for (int i = 0; i < protos.size(); i++) {
|
||||
String proto = protos[i].strip_edges();
|
||||
// Check if we have the given protocol
|
||||
for (int j = 0; j < p_protocols.size(); j++) {
|
||||
if (protos[i] != p_protocols[j])
|
||||
if (proto != p_protocols[j])
|
||||
continue;
|
||||
protocol = protos[i];
|
||||
protocol = proto;
|
||||
break;
|
||||
}
|
||||
// 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);
|
||||
|
||||
_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);
|
||||
|
||||
return OK;
|
||||
|
|
Loading…
Reference in a new issue