Skip to content

Commit

Permalink
Merge pull request #36250 from Faless/ws/fix_js_status
Browse files Browse the repository at this point in the history
Fix EMWSClient::get_connection_status()
  • Loading branch information
akien-mga committed Feb 15, 2020
2 parents 264f20f + ebeeb67 commit c3b4915
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
22 changes: 14 additions & 8 deletions modules/websocket/emws_client.cpp
Expand Up @@ -91,10 +91,14 @@ Error EMWSClient::connect_to_host(String p_host, String p_path, uint16_t p_port,
int peer_sock = EM_ASM_INT({
var proto_str = UTF8ToString($2);
var socket = null;
if (proto_str) {
socket = new WebSocket(UTF8ToString($1), proto_str.split(","));
} else {
socket = new WebSocket(UTF8ToString($1));
try {
if (proto_str) {
socket = new WebSocket(UTF8ToString($1), proto_str.split(","));
} else {
socket = new WebSocket(UTF8ToString($1));
}
} catch (e) {
return -1;
}
var c_ptr = Module.IDHandler.get($0);
socket.binaryType = "arraybuffer";
Expand Down Expand Up @@ -174,6 +178,8 @@ Error EMWSClient::connect_to_host(String p_host, String p_path, uint16_t p_port,
return Module.IDHandler.add(socket);
}, _js_id, str.utf8().get_data(), proto_string.utf8().get_data());
/* clang-format on */
if (peer_sock == -1)
return FAILED;

static_cast<Ref<EMWSPeer> >(_peer)->set_sock(peer_sock, _in_buf_size, _in_pkt_size);

Expand All @@ -190,11 +196,11 @@ Ref<WebSocketPeer> EMWSClient::get_peer(int p_peer_id) const {

NetworkedMultiplayerPeer::ConnectionStatus EMWSClient::get_connection_status() const {

if (_peer->is_connected_to_host())
if (_peer->is_connected_to_host()) {
if (_is_connecting)
return CONNECTION_CONNECTING;
return CONNECTION_CONNECTED;

if (_is_connecting)
return CONNECTION_CONNECTING;
}

return CONNECTION_DISCONNECTED;
};
Expand Down
15 changes: 10 additions & 5 deletions modules/websocket/emws_peer.cpp
Expand Up @@ -68,12 +68,17 @@ Error EMWSPeer::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
bytes_array[i] = getValue($1+i, 'i8');
}

if ($3) {
sock.send(bytes_array.buffer);
} else {
var string = new TextDecoder("utf-8").decode(bytes_array);
sock.send(string);
try {
if ($3) {
sock.send(bytes_array.buffer);
} else {
var string = new TextDecoder("utf-8").decode(bytes_array);
sock.send(string);
}
} catch (e) {
return 1;
}
return 0;
}, peer_sock, p_buffer, p_buffer_size, is_bin);
/* clang-format on */

Expand Down

0 comments on commit c3b4915

Please sign in to comment.