Skip to content

Commit

Permalink
Fix websocket close event data
Browse files Browse the repository at this point in the history
  • Loading branch information
sbc100 committed Sep 5, 2024
1 parent 4c71fa1 commit ac5bde6
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 12 deletions.
2 changes: 1 addition & 1 deletion src/library_websocket.js
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ var LibraryWebSocket = {
#endif
var eventPtr = WS.getSocketEvent(socketId);
{{{ makeSetValue('eventPtr', C_STRUCTS.EmscriptenWebSocketCloseEvent.wasClean, 'e.wasClean', 'i8') }}},
{{{ makeSetValue('eventPtr', C_STRUCTS.EmscriptenWebSocketCloseEvent.wasClean, 'e.code', 'i16') }}},
{{{ makeSetValue('eventPtr', C_STRUCTS.EmscriptenWebSocketCloseEvent.code, 'e.code', 'i16') }}},
stringToUTF8(e.reason, eventPtr + {{{ C_STRUCTS.EmscriptenWebSocketCloseEvent.reason }}}, 512);
{{{ makeDynCall('iipp', 'callbackFunc') }}}(0/*TODO*/, eventPtr, userData);
}
Expand Down
23 changes: 12 additions & 11 deletions test/websocket/test_websocket_send.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,18 @@ EM_BOOL WebSocketOpen(int eventType, const EmscriptenWebSocketOpenEvent *e, void

EM_BOOL WebSocketClose(int eventType, const EmscriptenWebSocketCloseEvent *e, void *userData) {
printf("close(socket=%d, eventType=%d, wasClean=%d, code=%d, reason=%s, userData=%p)\n", e->socket, eventType, e->wasClean, e->code, e->reason, userData);
assert(e->wasClean == 1);
assert(e->code == 1005 /* No Status Rcvd */);
emscripten_websocket_delete(e->socket);
if (e->socket == sock1) {
sock1 = 0;
} else if (e->socket == sock2) {
sock2 = 0;
}
// Once both sockets have been closed we are done.
if (!sock1 && !sock2) {
emscripten_force_exit(0);
}
return 0;
}

Expand Down Expand Up @@ -49,17 +61,6 @@ EM_BOOL WebSocketMessage(int eventType, const EmscriptenWebSocketMessageEvent *e
}
printf("\n");
emscripten_websocket_close(e->socket, 0, 0);
emscripten_websocket_delete(e->socket);
if (e->socket == sock1) {
sock1 = 0;
} else {
sock2 = 0;
}
// Once both sockets are closed we are done.
if (!sock1 && !sock2) {
emscripten_force_exit(0);
}

return 0;
}

Expand Down

0 comments on commit ac5bde6

Please sign in to comment.