from flask import Flask,render_template,request
from geventwebsocket.handler import WebSocketHandler
from gevent.pywsgi import WSGIServer
import json
app = Flask(__name__)
USERS = {
'1':{'name':'22','count':0},
'2':{'name':'222','count':0},
'3':{'name':'2222','count':100},
}
# http://127.0.0.1:5000/index
@app.route('/index')
def index():
return render_template('index.html',users=USERS)
# http://127.0.0.1:5000/message
WEBSOCKET_LIST = []
@app.route('/message')
def message():
ws = request.environ.get('wsgi.websocket')
if not ws:
print('http')
return '您使用的是Http协议'
WEBSOCKET_LIST.append(ws)
while True:
cid = ws.receive()
if not cid:
WEBSOCKET_LIST.remove(ws)
ws.close()
break
old = USERS[cid]['count']
new = old + 1
USERS[cid]['count'] = new
for client in WEBSOCKET_LIST:
client.send(json.dumps({'cid':cid,'count':new}))
return "websocket"
@app.route('/test')
def test():
print("测试")
return "Test"
if __name__ == '__main__':
#app.run("0.0.0.0",port=5001)
http_server = WSGIServer(('0.0.0.0', 5001), app, handler_class=WebSocketHandler)
http_server.serve_forever()