1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 00:27:43 +00:00

LibWeb: Add WebSocket bindings

The WebSocket bindings match the original specification from the
WHATWG living standard, but do not match the later update of the
standard that involves FETCH. The FETCH update will be handled later
since the changes would also affect XMLHttpRequest.
This commit is contained in:
DexesTTP 2021-04-24 13:54:24 +02:00 committed by Linus Groh
parent 68bfb46a6f
commit 22413ef729
16 changed files with 593 additions and 1 deletions

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>WebSocket Test</title>
</head>
<body>
<h2>WebSocket Test</h2>
<div id="output"></div>
<script type="text/javascript">
var output = document.getElementById('output');
function println(message) {
const p = document.createElement('p');
p.innerHTML = message;
output.appendChild(p);
}
// Websocket echo server, provided from https://www.websocket.org/echo.html
var targetUrl = 'wss://echo.websocket.org';
var messageContent = 'Hello friends :^)';
println('<span style="color: blue;">Connecting to:</span> ' + targetUrl);
websocket = new WebSocket(targetUrl);
websocket.onopen = function() {
println('<span style="color: green;">Connected to:</span> ' + targetUrl);
println('<span style="color: blue;">Sending Message:</span> ' + messageContent);
websocket.send(messageContent);
};
websocket.onmessage = function(event) {
println('<span style="color: green;">Received Response:</span> ' + event.data);
println('<span style="color: blue;">Closing connection...</span> ');
websocket.close();
};
websocket.onerror = function(evt) {
println('<span style="color: red;">ERROR:</span> ' + evt.data);
};
websocket.onclose = function() {
println('<span style="color: green;">Connection closed!</span>');
};
</script>
</body>
</html>