Skip to content

Commit d00ed95

Browse files
committed
improve typing
1 parent 7d23e23 commit d00ed95

File tree

1 file changed

+5
-15
lines changed

1 file changed

+5
-15
lines changed

apps/sim/socket/index.ts

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { createServer } from 'http'
22
import { createLogger } from '@sim/logger'
3+
import type { Server as SocketIOServer } from 'socket.io'
34
import { env } from '@/lib/core/config/env'
45
import { createSocketIOServer, shutdownSocketIOAdapter } from '@/socket/config/socket'
56
import { setupAllHandlers } from '@/socket/handlers'
@@ -9,27 +10,16 @@ import { createHttpHandler } from '@/socket/routes/http'
910

1011
const logger = createLogger('CollaborativeSocketServer')
1112

12-
/**
13-
* Create the appropriate RoomManager based on configuration
14-
* If REDIS_URL is set, uses Redis for multi-pod support
15-
* Otherwise, uses in-memory for single-pod mode
16-
*
17-
* IMPORTANT: If Redis is configured, we ONLY use Redis - no fallback
18-
* This prevents split-brain scenarios
19-
*/
20-
async function createRoomManager(io: ReturnType<typeof createServer>): Promise<IRoomManager> {
21-
// Type assertion needed because io parameter comes from socket.io Server
22-
const socketIo = io as unknown as import('socket.io').Server
23-
13+
async function createRoomManager(io: SocketIOServer): Promise<IRoomManager> {
2414
if (env.REDIS_URL) {
2515
logger.info('Initializing Redis-backed RoomManager for multi-pod support')
26-
const manager = new RedisRoomManager(socketIo, env.REDIS_URL)
16+
const manager = new RedisRoomManager(io, env.REDIS_URL)
2717
await manager.initialize()
2818
return manager
2919
}
3020

3121
logger.warn('No REDIS_URL configured - using in-memory RoomManager (single-pod only)')
32-
const manager = new MemoryRoomManager(socketIo)
22+
const manager = new MemoryRoomManager(io)
3323
await manager.initialize()
3424
return manager
3525
}
@@ -50,7 +40,7 @@ async function main() {
5040
const io = await createSocketIOServer(httpServer)
5141

5242
// Initialize room manager (Redis or in-memory based on config)
53-
const roomManager = await createRoomManager(io as unknown as ReturnType<typeof createServer>)
43+
const roomManager = await createRoomManager(io)
5444

5545
// Set up authentication middleware
5646
io.use(authenticateSocket)

0 commit comments

Comments
 (0)