add tcp test

This commit is contained in:
zizifn3
2023-05-16 14:10:43 +00:00
parent 8c9fa7fc32
commit ff4885e865
4 changed files with 138 additions and 49 deletions

View File

@@ -1,6 +1,6 @@
import { index401 } from './util';
import { parse, stringify, validate } from 'uuid';
const skipUrls = ['ws', 'assets', 'http2'];
const skipUrls = ['ws', 'assets', 'http2', 'connect'];
async function errorHandling(context: EventContext<any, any, any>) {
try {

34
functions/connect.ts Normal file
View File

@@ -0,0 +1,34 @@
// ignore the typescropt error
// @ts-ignore
import { connect } from 'cloudflare:sockets';
export default {
async fetch(req, env) {
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);
},
};