Skip to content

Instantly share code, notes, and snippets.

@laiso
Created May 8, 2023 16:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save laiso/bdc283237d4c63b15f4a35d20b41dca7 to your computer and use it in GitHub Desktop.
Save laiso/bdc283237d4c63b15f4a35d20b41dca7 to your computer and use it in GitHub Desktop.
import { connect } from 'cloudflare:sockets';
export default {
async fetch(req, env) {
const socket = connect({
hostname: 'neverssl.com',
port: 80
});
const writer = socket.writable.getWriter()
const encoder = new TextEncoder();
const encoded = encoder.encode("GET / HTTP/1.1\r\nHost: neverssl.com\r\n\r\n");
await writer.write(encoded);
const reader = socket.readable.getReader();
const decoder = new TextDecoder();
let response = "";
while (true) {
const res = await reader.read();
if (res.done) {
console.log("Stream done, socket connection has been closed.");
break;
}
response += decoder.decode(res.value);
}
return new Response(response);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment