环境需求:flask,websocket第三方包

目录结构

简单使用WebSocket实现聊天室

 

web中实现群聊

ws_群聊.py文件

# 实现一个websocket 先下载包  gevent-websocket

from flask import Flask, request, render_template
from geventwebsocket.handler import WebSocketHandler
from geventwebsocket.websocket import WebSocket  # 语法提示作用
from gevent.pywsgi import WSGIServer
import json

app = Flask(__name__)

user_socket_dict = {}  # 定义一字典   user_id:链接


@app.route('/ws/<user>')
def ws(user):
    # print(request.environ)
    user_socket = request.environ.get("wsgi.websocket")  # type:WebSocket
    if user_socket:  # 当用户连接时候
        user_socket_dict[user] = user_socket  # 添加到用户列表
    print(len(user_socket_dict), user_socket_dict)
    while 1:
        msg = user_socket.receive()  # 接受消息
        print(msg)  # 页面传过来的数据   b"{from_user:jinwangba ,to_user:yinwangba,msg:"doushidawangba"}"
        msg_dict = json.loads(msg)
        to_user_socket = user_socket_dict.get(msg_dict.get("to_user"))
        to_user_socket.send(json.dumps(
            {"from_user": user,
             "to_user": msg_dict.get("to_user"),
             "msg": msg_dict.get("msg"
                                 )}))


@app.route('/')
def index():
    return render_template("ws单聊.html")


if __name__ == '__main__':
    print('服务已启动')
    # app.run("0.0.0.0", 5000, debug=True)
    http_serv = WSGIServer(("0.0.0.0", 8080), app, handler_class=WebSocketHandler)
    http_serv.serve_forever()  # 永久启动
群聊py文件

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-04-28
  • 2021-06-08
  • 2022-02-06
  • 2021-12-02
  • 2021-07-11
猜你喜欢
  • 2022-02-09
  • 2022-01-03
  • 2021-12-22
  • 2022-12-23
  • 2022-01-12
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案