add server code

This commit is contained in:
Late Night Defender 2025-05-28 16:20:33 +07:00
parent c39fd40be4
commit 87bf90ebf2
4 changed files with 72 additions and 3 deletions

44
server.js Normal file
View file

@ -0,0 +1,44 @@
// server.js
import express from 'express';
import { WebSocketServer } from 'ws';
import { createServer } from 'http';
import WebSocket from 'ws';
const app = express();
const server = createServer(app);
const wss = new WebSocketServer({ server });
const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
wss.on('connection', (clientWs) => {
const openaiWs = new WebSocket('wss://api.openai.com/v1/realtime', {
headers: {
Authorization: `Bearer ${OPENAI_API_KEY}`
}
});
openaiWs.on('open', () => {
console.log('Connected to OpenAI');
});
// Proxy messages from client to OpenAI
clientWs.on('message', (message) => {
if (openaiWs.readyState === WebSocket.OPEN) {
openaiWs.send(message);
}
});
// Proxy messages from OpenAI back to client
openaiWs.on('message', (message) => {
if (clientWs.readyState === WebSocket.OPEN) {
clientWs.send(message);
}
});
openaiWs.on('close', () => clientWs.close());
clientWs.on('close', () => openaiWs.close());
});
server.listen(3001, () => {
console.log('WebSocket proxy listening on ws://localhost:3001');
});