diff --git a/api/rooms/api_rooms.py b/api/rooms/api_rooms.py index f520612..29f5273 100644 --- a/api/rooms/api_rooms.py +++ b/api/rooms/api_rooms.py @@ -4,6 +4,7 @@ from models.GameRoom import GameRoom, rooms_schema, room_schema from models.Game import Game, games_schema from database import db from ..decorators import jwt_required +from websockets.socket import new_room_notice, join_room_notice api_rooms = Blueprint('api_rooms', __name__, url_prefix='/api/rooms') @@ -12,6 +13,7 @@ def get_room(room_id): print(room_id) games = Game.query.filter_by(game_room=room_id).all() response = games_schema.dumps(games) + join_room_notice(room_id) return jsonify(response) @api_rooms.route('/', methods=['GET']) @@ -40,8 +42,8 @@ def post_room(): response = { 'status': 'success', 'message': 'Succesfully registered.', - 'gameRoom': room.id } + new_room_notice(room_schema.dumps(room)) return jsonify(response), 201 except Exception as e: print(e) diff --git a/websockets/socket.py b/websockets/socket.py index 020a147..ec45d03 100644 --- a/websockets/socket.py +++ b/websockets/socket.py @@ -22,4 +22,27 @@ def handle_connection(): look cool a namespaced socketio connection! - ''') \ No newline at end of file + ''') + +def join_room_notice(room): + @socketio.on('connect', namespace=f'/{room}') + def handle_connection(): + print(f'joined room at {room}') + emit('join room', {'roomspace': f'{room}'}) + @socketio.on('join room', namespace=f'/{room}') + def connect_room(message): + print(f'connected with ${message}') + emit('connected', {'roomspace': f'/{room}'}) + +def new_game_notice(room, game): + @socketio.on('connect', namespace=f'/{room}') + def emit_game(game): + pass + + +def new_room_notice(room): + socketio.emit('new room', room, broadcast=True) + +# @socketio.on +# def room_socket(roomspace): +# pass \ No newline at end of file