diff --git a/api/api.py b/api/api.py index 59fe130..6c795b8 100644 --- a/api/api.py +++ b/api/api.py @@ -1,5 +1,7 @@ from flask import Blueprint, request, jsonify, session from .users.user_endpoint import UserEndpoint +from app import socketio +from flask_socketio import emit api = Blueprint('api', __name__, url_prefix='/api') @@ -14,4 +16,14 @@ def api_users(): @api.route('/user') def api_user(): - return jsonify(UserEndpoint.user()) \ No newline at end of file + return jsonify(UserEndpoint.user()) + +@socketio.on('connect') +def handle_connection(): + print('connected') + socketio.emit('connect', payload={'data':'connection'}) + +@socketio.on('message') +def handle_message(message): + print(message) + emit('message return', {'data':'a message was sent'}) \ No newline at end of file diff --git a/app.py b/app.py index 4a7d7c9..fe753db 100644 --- a/app.py +++ b/app.py @@ -7,15 +7,19 @@ from configuration.config import DevelopmentConfig from flask_bcrypt import Bcrypt from flask_cors import CORS +from flask_socketio import SocketIO +app = Flask(__name__) +bcrypt = Bcrypt(app) +app.config['CORS_HEADERS'] = 'Content-Type' +app.config.from_object(DevelopmentConfig) +socketio = SocketIO(app, cors_allowed_origins="http://localhost:3000") +# cors_allowed_origins="http://localhost:3000" def create_app(): - app = Flask(__name__) - CORS(app, resources={r"/api/*": {"origins": "http://localhost:3000"}, - r"/auth/*": {"origins": "http://localhost:3000"}}) - app.config['CORS_HEADERS'] = 'Content-Type' - app.config.from_object(DevelopmentConfig) + CORS(app, resources={ + r"/api/*": {"origins": "http://localhost:3000"}, + r"/auth/*": {"origins": "http://localhost:3000"}, + }) db.init_app(app) ma.init_app(app) return app - -bcrypt = Bcrypt(create_app()) \ No newline at end of file diff --git a/configuration/config.py b/configuration/config.py index 55c5173..4912a7b 100644 --- a/configuration/config.py +++ b/configuration/config.py @@ -14,7 +14,7 @@ class DevelopmentConfig(BaseConfig): DEBUG = True BCRYPT_LOG_ROUNDS = 4 SQLALCHEMY_DATABASE_URI = DATABASE - PORT = 8000 + PORT = 5000 class TestingConfig(BaseConfig): diff --git a/requirements.txt b/requirements.txt index fab2ace..432ba18 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,14 +3,18 @@ astroid==2.3.1 bcrypt==3.1.7 cffi==1.12.3 Click==7.0 +dnspython==1.16.0 +eventlet==0.25.1 Flask==1.1.1 Flask-Bcrypt==0.7.1 Flask-Cors==3.0.8 flask-marshmallow==0.10.1 Flask-Migrate==2.5.2 Flask-Script==2.0.6 +Flask-SocketIO==4.2.1 Flask-SQLAlchemy==2.4.1 Flask-Testing==0.7.1 +greenlet==0.4.15 isort==4.3.21 itsdangerous==1.1.0 Jinja2==2.10.1 @@ -20,6 +24,7 @@ MarkupSafe==1.1.1 marshmallow==3.2.0 marshmallow-sqlalchemy==0.19.0 mccabe==0.6.1 +monotonic==1.5 numpy==1.17.2 psycopg2==2.8.3 pycparser==2.19 @@ -27,6 +32,8 @@ PyJWT==1.7.1 pylint==2.4.2 python-dateutil==2.8.0 python-editor==1.0.4 +python-engineio==3.9.3 +python-socketio==4.3.1 six==1.12.0 SQLAlchemy==1.3.8 typed-ast==1.4.0 diff --git a/server.py b/server.py index d38827c..23b7e45 100644 --- a/server.py +++ b/server.py @@ -1,4 +1,4 @@ -from app import create_app, db +from app import create_app, db, socketio # Blueprints from api.api import api @@ -14,4 +14,4 @@ if __name__ == '__main__': app.register_blueprint(api) app.register_blueprint(auth) migrate = Migrate(app, db) - app.run(port=8000, debug=True) \ No newline at end of file + socketio.run(app) \ No newline at end of file