bugfixes for websocket api

This commit is contained in:
ading2210 2024-03-20 17:53:39 -04:00
parent 7284487430
commit 3a50060e07
7 changed files with 13 additions and 10 deletions

View file

@ -1,5 +1,8 @@
# Libcurl.js Changelog: # Libcurl.js Changelog:
## v0.6.3 (3/20/24):
- Fix an error during websocket cleanup
## v0.6.1 (3/20/24): ## v0.6.1 (3/20/24):
- Fix NPM package exports - Fix NPM package exports

View file

@ -155,7 +155,7 @@ The `CurlWebSocket.send` function can be used to send data to the websocket. The
You can call `CurlWebSocket.close` to close and clean up the websocket. You can call `CurlWebSocket.close` to close and clean up the websocket.
```js ```js
let ws = new libcurl.CurlWebSocket("wss://echo.websocket.org", [], {verbose: 1}); let ws = new libcurl.CurlWebSocket("wss://echo.websocket.in/", [], {verbose: 1});
ws.onopen = () => { ws.onopen = () => {
console.log("ws connected!"); console.log("ws connected!");
ws.send("hello".repeat(100)); ws.send("hello".repeat(100));
@ -167,7 +167,7 @@ ws.onmessage = (data) => {
You can also use the `libcurl.WebSocket` object, which works identically to the regular [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) object. It uses the same arguments as the simpler `CurlWebSocket` API. You can also use the `libcurl.WebSocket` object, which works identically to the regular [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) object. It uses the same arguments as the simpler `CurlWebSocket` API.
```js ```js
let ws = new libcurl.WebSocket("wss://echo.websocket.org"); let ws = new libcurl.WebSocket("wss://echo.websocket.in/");
ws.addEventListener("open", () => { ws.addEventListener("open", () => {
console.log("ws connected!"); console.log("ws connected!");
ws.send("hello".repeat(128)); ws.send("hello".repeat(128));

View file

@ -106,7 +106,7 @@ api = {
WispConnection: WispConnection, WispConnection: WispConnection,
transport: "wisp", transport: "wisp",
WebSocket: WebSocket, WebSocket: FakeWebSocket,
CurlWebSocket: CurlWebSocket, CurlWebSocket: CurlWebSocket,
TLSSocket: TLSSocket, TLSSocket: TLSSocket,
HTTPSession: HTTPSession, HTTPSession: HTTPSession,

View file

@ -132,7 +132,7 @@ class CurlSession {
catch (e) { catch (e) {
//the readable stream has been closed elsewhere, so cancel the request //the readable stream has been closed elsewhere, so cancel the request
if (e instanceof TypeError) { if (e instanceof TypeError) {
finish_callback(-1); end_callback(-1);
} }
else { else {
throw e; throw e;

View file

@ -107,7 +107,7 @@ class CurlWebSocket extends CurlSession {
cleanup(error=0) { cleanup(error=0) {
if (this.http_handle) { if (this.http_handle) {
this.remove_handle(this.http_handle); this.remove_request(this.http_handle);
this.http_handle = null; this.http_handle = null;
super.close(); super.close();
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "libcurl.js", "name": "libcurl.js",
"version": "0.6.1", "version": "0.6.3",
"description": "An experimental port of libcurl to WebAssembly for use in the browser.", "description": "An experimental port of libcurl to WebAssembly for use in the browser.",
"main": "libcurl.mjs", "main": "libcurl.mjs",
"exports": { "exports": {

View file

@ -1,8 +1,8 @@
function test() { function test() {
let message_len = 128*1024; let message_len = 1024;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let ws = new libcurl.WebSocket("wss://echo.websocket.org"); let ws = new libcurl.WebSocket("wss://echo.websocket.in/");
ws.addEventListener("open", () => { ws.addEventListener("open", () => {
ws.send("hello".repeat(message_len)); ws.send("hello".repeat(message_len));
}); });
@ -12,8 +12,8 @@ function test() {
messages += 1; messages += 1;
if (messages >= 2) { if (messages >= 2) {
if (event.data !== "hello".repeat(message_len)) reject("unexpected response"); if (event.data !== "hello".repeat(message_len)) reject("unexpected response");
if (messages >= 11) resolve(); else if (messages >= 11) resolve();
ws.send("hello".repeat(message_len)); else ws.send("hello".repeat(message_len));
} }
}); });