mirror of
https://github.com/lush2020/edgetunnel.git
synced 2026-03-21 17:12:33 +08:00
33 lines
822 B
TypeScript
33 lines
822 B
TypeScript
// ignore the typescropt error
|
|
// @ts-ignore
|
|
import { connect } from 'cloudflare:sockets';
|
|
|
|
export const onRequest: PagesFunction<any> = async (context) => {
|
|
console.log('start fetch');
|
|
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);
|
|
};
|