add old v0.4 code

This commit is contained in:
ading2210 2024-02-28 10:29:47 -08:00
parent 582bbd4ecd
commit 9205ae1507
14 changed files with 340 additions and 180 deletions

View file

@ -0,0 +1,73 @@
class TLSSocket extends CustomWebSocket {
constructor(hostname, port, debug) {
super();
this.hostname = hostname;
this.port = port;
this.url = `https://${hostname}:${port}`;
this.debug = debug;
this.connect();
}
connect() {
let data_callback = () => {};
let finish_callback = (error, response_info) => {
this.status = this.OPEN;
if (error === 0) {
this.open_callback();
this.recv_loop();
}
else {
this.cleanup(error);
}
}
let options = {
_connect_only: 1,
}
if (this.debug) options._libcurl_verbose = 1;
this.http_handle = perform_request(this.url, options, data_callback, finish_callback, null);
}
custom_recv() {
let buffer_size = 64*1024;
let result_ptr = _recv_from_socket(this.http_handle, buffer_size);
let data_ptr = _get_result_buffer(result_ptr);
let result_code = _get_result_code(result_ptr);
if (result_code == 0) { //CURLE_OK - data received
if (_get_result_closed(result_ptr)) {
this.close_callback();
return;
}
let data_size = _get_result_size(result_ptr);
let data_heap = Module.HEAPU8.subarray(data_ptr, data_ptr + data_size);
let data = new Uint8Array(data_heap);
let message_event = new MessageEvent("message", {data: data});
this.dispatchEvent(message_event);
}
_free(data_ptr);
_free(result_ptr);
}
custom_send(data_array) {
let data_ptr = allocate_array(data_array);
let data_len = data_array.length;
_send_to_socket(this.http_handle, data_ptr, data_len);
_free(data_ptr);
}
cleanup(error=false) {
if (this.http_handle) _cleanup_handle(this.http_handle);
clearInterval(this.event_loop);
this.close_callback(error);
}
custom_close() {
this.cleanup();
this.status = this.CLOSED;
}
}