server
from flask import Flask, request, render_templatefrom geventwebsocket.handler import WebSocketHandlerfrom gevent.pywsgi import WSGIServerfrom geventwebsocket.websocket import WebSocketimport jsonapp = Flask(__name__)user_socket_dict = {} # 字典@app.route('/conn_ws/') #http 协议,def ws_app(user_nick): user_socket = request.environ.get('wsgi.websocket') #type:WebSocket user_socket_dict[user_nick] = user_socket # { 昵称:user信息 } print(len(user_socket_dict), list(user_socket_dict.keys())) while True: # user_socket 是一个内存地址 msg = user_socket.receive() # hang 住了 msg_dict = json.loads(msg) to_user = msg_dict.get('to_user') if to_user == 'all': for ss in list(user_socket_dict.values()): ss.send(msg) else: to_user_socket = user_socket_dict.get(to_user) to_user_socket.send(msg)@app.route('/')def index(): return render_template('my_ws.html')if __name__ == '__main__': # app.run() http_ser = WSGIServer(('0.0.0.0',9009),app,handler_class=WebSocketHandler) # 应用程序网关接口 http_ser.serve_forever()
页面 html
单聊 发送给: 消息: