From 57ab0499456cf0a969914384e64f9fb968bab57a Mon Sep 17 00:00:00 2001 From: April Hall Date: Sat, 4 Jan 2025 22:55:09 -0500 Subject: [PATCH] feat: Add message send/recive system --- prodServer.ts | 10 +++++++++- src/lib/websocketConfig.ts | 15 ++++++++++++--- src/routes/+page.svelte | 28 +++++++++++++++++++++++----- 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/prodServer.ts b/prodServer.ts index 215b1ed..b769c8a 100644 --- a/prodServer.ts +++ b/prodServer.ts @@ -8,9 +8,17 @@ const server = createServer(app); const io = new Server(server); io.on('connection', (socket) => { + // Runs on client connect console.log(`[ws:kit] client connected (${socket.id})`); - io!.emit('message', `Hello from SvelteKit ${new Date().toLocaleString()} (${socket.id})`); + io!.emit('message', `[ws] Hello from SvelteKit ${new Date().toLocaleString()} (${socket.id})`); + // Runs on message receive + socket.on('message', (msg) => { + console.log(`[ws:kit] message from ${socket.id}: ${msg}`); + io!.emit('message', `[${socket.id}] ${msg}`); + }); + + // Runs on client disconnect socket.on('disconnect', () => { io!.emit('message', `client disconnected (${socket.id})`); console.log(`[ws:kit] client disconnected (${socket.id})`); diff --git a/src/lib/websocketConfig.ts b/src/lib/websocketConfig.ts index c8e2583..8e8176a 100644 --- a/src/lib/websocketConfig.ts +++ b/src/lib/websocketConfig.ts @@ -7,10 +7,19 @@ export function startupSocketIOServer(httpServer: HttpServer | null) { if (io) return; console.log('[ws:kit] setup'); io = new SocketIOServer(httpServer); - io.on('connection', (socket) => { - console.log(`[ws:kit] client connected (${socket.id})`); - io!.emit('message', `Hello from SvelteKit ${new Date().toLocaleString()} (${socket.id})`); + io.on('connection', (socket) => { + // Runs on client connect + console.log(`[ws:kit] client connected (${socket.id})`); + io!.emit('message', `[ws] Hello from SvelteKit ${new Date().toLocaleString()} (${socket.id})`); + + // Runs on message receive + socket.on('message', (msg) => { + console.log(`[ws:kit] message from ${socket.id}: ${msg}`); + io!.emit('message', `[${socket.id}] ${msg}`); + }); + + // Runs on client disconnect socket.on('disconnect', () => { io!.emit('message', `client disconnected (${socket.id})`); console.log(`[ws:kit] client disconnected (${socket.id})`); diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 611d013..6d24463 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,8 +1,10 @@ -
+

# SvelteKit with Socket.IO Integration

- - - +
+ + +
+
    {#each log as event}
  • {event}