add uuid into path

This commit is contained in:
zizifn
2023-05-19 22:04:31 +08:00
committed by zizifn
parent a7ed1d77f0
commit 4fde353447
8 changed files with 58 additions and 17 deletions

View File

@@ -0,0 +1,33 @@
// ignore the typescropt error
// @ts-ignore
import { connect } from 'cloudflare:sockets';
export const onRequest: PagesFunction<any> = async (context) => {
context.params.user;
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);
};

View File

@@ -0,0 +1,9 @@
import { vlessJs } from 'vless-js';
interface Env {
KV: KVNamespace;
}
export const onRequest: PagesFunction<Env> = async (context) => {
console.log('xxxxx', context.env, vlessJs());
return new Response(`Hello, world! ${context.request.url}--${vlessJs()}`);
};

28
functions/sample/http2.ts Normal file
View File

@@ -0,0 +1,28 @@
interface Env {
KV: KVNamespace;
}
export const onRequest: PagesFunction<Env> = async (context) => {
let count = 0;
console.log('test11', Date.now());
await new Promise((resolve, rej) => {
setTimeout(() => {
resolve('');
}, 100);
});
console.log('test11', Date.now());
const transformStream =
context.request.body?.pipeThrough(new TextDecoderStream()).pipeThrough(
new TransformStream({
transform(chunk, controller) {
console.log('test', Date.now());
controller.enqueue(
new TextEncoder().encode(`${chunk} + ${count++} ${new Date()}`)
);
},
})
) || 'default';
return new Response(transformStream, {
headers: { 'content-type': 'text/plain' },
});
};

25
functions/sample/ws.ts Normal file
View File

@@ -0,0 +1,25 @@
interface Env {
KV: KVNamespace;
}
export const onRequest: PagesFunction<Env> = async ({ request, data }) => {
console.log(data);
const upgradeHeader = request.headers.get('Upgrade');
if (!upgradeHeader || upgradeHeader !== 'websocket') {
return new Response('Expected Upgrade: websocket', { status: 426 });
}
const webSocketPair = new WebSocketPair();
const [client, server] = Object.values(webSocketPair);
server.accept();
server.addEventListener('message', (event) => {
console.log(event.data);
server.send(`server reponse after client sent ${event.data}`);
});
server.send(`client sned`);
return new Response(null, {
status: 101,
webSocket: client,
});
};