forked from Viraj3f/weDraw
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.py
More file actions
59 lines (44 loc) · 1.61 KB
/
server.py
File metadata and controls
59 lines (44 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from flask import Flask
from flask import render_template
from flask_socketio import SocketIO, emit
from pprint import pprint
from flask import request
from flask import url_for
from flask import redirect
import database
app = Flask(__name__)
socketio = SocketIO(app)
database.init()
connected_users = []
@socketio.on('update')
def update(drawing):
database.insert_drawing(drawing)
socketio.emit("recieve" + str(drawing["session_id"]),
drawing) # Send the updated sketch to client
@socketio.on('join')
def connect_user(data):
drawing = database.get_whole_drawing(data["session_id"])
emit("loadDrawing", drawing)
for user in connected_users:
if user["session_id"] == data["session_id"]:
emit("new_user" + str(data["session_id"]), user["user_id"])
socketio.emit("new_user" + str(data["session_id"]), data["user_id"])
connected_users.append(data)
@socketio.on('clear')
def clear(session_id):
database.clear_drawing(session_id)
socketio.emit("externalclear" + str(session_id), session_id)
@app.route('/<session_id>/<username>/draw')
def draw(session_id, username):
return render_template('draw.html')
@app.route('/', methods=['GET', 'POST'])
def hello_world():
print("someone has connected!")
if request.method == 'GET':
return render_template('profilePage.html')
elif request.method == 'POST':
return redirect(url_for('draw',
session_id=request.form['sessionId'],
username=request.form['profileName']))
if __name__ == '__main__':
socketio.run(app, host="0.0.0.0", port=8000)