Files
websocket-qris/TODO.md
2025-10-24 12:33:10 +00:00

2.1 KiB

WebSocket Implementation Completion TODO

Current Status

  • Analysis completed
  • Plan approved by user
  • Implementation started

Implementation Tasks

1. Enhance client.go message handlers

  • Implement database operations (db_insert, db_query, db_custom_query)
  • Implement admin functions (kick_client, kill_server, clear_logs)
  • Enhance room management (join_room, leave_room, get_room_info)
  • Improve ping/pong and heartbeat handling
  • Add proper error handling and responses

2. Create proper MessageHandler interfaces

  • Create DatabaseHandler for database operations
  • Create AdminHandler for admin functions
  • Create RoomHandler for room management
  • Create MonitoringHandler for stats/health checks
  • Register all handlers in MessageRegistry

3. Update broadcaster.go integration

  • Ensure proper hub integration
  • Add missing server-to-client broadcasting methods
  • Improve message routing for different communication patterns

4. Update message.go and registry usage

  • Ensure all message types are defined
  • Update hub to use MessageRegistry instead of direct handling
  • Test registry functionality

5. Update hub.go message routing

  • Modify hub to route messages through registry
  • Ensure proper message queuing and broadcasting
  • Add monitoring for message processing

6. Testing and verification

  • Test broadcast messaging
  • Test client-to-client direct messaging
  • Test room management functionality
  • Test database operations
  • Test admin functions
  • Verify HTML AJAX example works with all features

Files to be modified

  • internal/services/websocket/client.go
  • internal/services/websocket/message.go
  • internal/services/websocket/broadcaster.go
  • internal/services/websocket/hub.go

Notes

  • All database operations are currently stubbed and return "not implemented" messages
  • Admin functions need proper authentication/authorization (currently just acknowledge)
  • MessageRegistry exists but is not being used in handleMessage
  • Client.html already supports all required message types