mirror of
https://github.com/LukeHagar/relay.git
synced 2025-12-06 04:21:14 +00:00
89 lines
2.7 KiB
TypeScript
89 lines
2.7 KiB
TypeScript
const relayUrl = "http://localhost:8000"; // Go relay server URL (HTTP server)
|
|
const socketUrl = "ws://localhost:9000/events?token=static-token"; // WebSocket URL with token in query parameter
|
|
|
|
let socket: WebSocket | null = null; // Declare WebSocket connection variable
|
|
|
|
// Function to initiate an HTTP request to the Go server (no auth required)
|
|
async function initiateConnection() {
|
|
try {
|
|
// Make a GET request to the Go relay server without Authorization header
|
|
const response = await fetch(relayUrl, {
|
|
method: "GET",
|
|
});
|
|
|
|
if (response.ok) {
|
|
console.log("Successfully connected to Go relay server");
|
|
|
|
// Now, initiate the WebSocket connection to the Go WebSocket server
|
|
socket = new WebSocket(socketUrl);
|
|
|
|
// WebSocket open event
|
|
socket.onopen = () => {
|
|
console.log("Connected to Go WebSocket server");
|
|
// Now you can send sample events to the Go server
|
|
sendSampleEvents();
|
|
};
|
|
|
|
// WebSocket message event (handling messages from Go WebSocket server)
|
|
socket.onmessage = (event) => {
|
|
const data = JSON.parse(event.data);
|
|
console.log("Message received from Go WebSocket server:", data);
|
|
};
|
|
|
|
// WebSocket error event
|
|
socket.onerror = (error) => {
|
|
console.error("WebSocket error:", error);
|
|
};
|
|
|
|
// WebSocket close event
|
|
socket.onclose = () => {
|
|
console.log("Disconnected from Go WebSocket server");
|
|
};
|
|
} else {
|
|
console.error(
|
|
"Failed to connect to Go relay server:",
|
|
response.statusText
|
|
);
|
|
}
|
|
} catch (error) {
|
|
console.error("Error during connection to Go relay server:", error);
|
|
}
|
|
}
|
|
|
|
// Function to send sample events to the Go WebSocket server
|
|
function sendSampleEvents() {
|
|
if (socket && socket.readyState === WebSocket.OPEN) {
|
|
// Example event 1: A sample GET request
|
|
const event1 = {
|
|
method: "GET",
|
|
url: "/api/example1",
|
|
data: { message: "Sample GET request event" },
|
|
};
|
|
socket.send(JSON.stringify(event1));
|
|
console.log("Sent event 1:", event1);
|
|
|
|
// Example event 2: A sample POST request
|
|
const event2 = {
|
|
method: "POST",
|
|
url: "/api/example2",
|
|
data: { message: "Sample POST request event" },
|
|
};
|
|
socket.send(JSON.stringify(event2));
|
|
console.log("Sent event 2:", event2);
|
|
|
|
// Example event 3: A custom message with random data
|
|
const event3 = {
|
|
method: "CUSTOM",
|
|
url: "/api/custom",
|
|
data: { message: "Sample custom event", timestamp: Date.now() },
|
|
};
|
|
socket.send(JSON.stringify(event3));
|
|
console.log("Sent event 3:", event3);
|
|
} else {
|
|
console.error("WebSocket is not open, cannot send events");
|
|
}
|
|
}
|
|
|
|
// Initiate connection to the Go relay server
|
|
initiateConnection();
|