46 lines
952 B
TypeScript
46 lines
952 B
TypeScript
import type {
|
|
PartySocketEvent,
|
|
PartyState,
|
|
} from "../api/src/party-types";
|
|
let ws: WebSocket | null = new WebSocket("ws://localhost:3000/api/dev-socket/ws");
|
|
|
|
const socket = await Bun.udpSocket({
|
|
port: 7070,
|
|
socket: {
|
|
data(socket, buf, port, addr) {
|
|
console.log(`message from ${addr}:${port}:`);
|
|
console.log(buf.toString());
|
|
},
|
|
},
|
|
});
|
|
|
|
|
|
|
|
ws.onerror = e => {
|
|
console.error(e)
|
|
}
|
|
|
|
ws.onopen = () => {
|
|
console.log("WebSocket open")
|
|
}
|
|
|
|
ws.onmessage = e => {
|
|
const data = JSON.parse(e.data) as PartySocketEvent;
|
|
console.log(data)
|
|
switch (data.type) {
|
|
case "party_status":
|
|
const { party } = data;
|
|
if (!party) return;
|
|
const partyData = party.data;
|
|
if (!partyData) return;
|
|
const { currentQuestion } = partyData
|
|
console.log(currentQuestion)
|
|
let text = currentQuestion?.text
|
|
if (text) {
|
|
ws?.send(text)
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
console.log("Started on :7070")
|