Websocket 群聊功能
2024-10-08 03:37:28
websocket 群聊
前提关闭防火墙
写入代码
from flask import Flask,request,render_template from geventwebsocket.handler import WebSocketHandler
from gevent.pywsgi import WSGIServer
from geventwebsocket.websocket import WebSocket app = Flask(__name__)
user_socket_list=[] @app.route("/conn_ws")
def ws_app():
# print(request.environ)
"""
wsgi.websocket:<geventwebsocket.websocket.WebSocket object at 0x0000000003Bc8528>
:return:
"""
user_socket = request.environ.get("wsgi.websocket")
user_socket_list.append(user_socket)
while True: msg =user_socket.receive()
print(msg)
for usocket in user_socket_list:
usocket.send(msg)
#user_socket.send(msg) #1 已经开启的websocket连接
#3 开启了websocket连接 然后 断开了 # return "123"
@app.route("/")
def index():
return render_template("my_ws.html") if __name__ =="__main__":
http_serv = WSGIServer(("0.0.0.0",9527),app,handler_class=WebSocketHandler)
http_serv.serve_forever()
ws_serv
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="text" id="send_str">
<button id="send_btn" onclick="send()"> 发送消息</button>
<p>
<div id="chat_list"> </div>
</p>
</body>
<script type="application/javascript">
var ws=new WebSocket("ws://192.168.11.78:9527/conn_ws"); // 自己的ip地址,页面才往自己页面显示内容
ws.onmessage =function (messageEvent) {
console.log(messageEvent.data);
var ptag = document.createElement("p");
ptag.innerText =messageEvent.data;
document.getElementById("chat_list").appendChild(ptag);
};
function send() {
var send_str = document.getElementById("send_str").value;
ws.send(send_str);
} </script> </html>
my_ws.html
这样就可以群聊了
最新文章
- 项目积累html标签
- Linux From Scratch - Version 7.7-systemd (中文)
- 群晖SVN Server远程访问
- 模板volist自增变量
- MYSQL-用户权限的验证过程
- Project Facets中Dynamic Web Module无法设置2.5的解决方法
- WEB前端介绍
- 实例学习Bloom Filter
- iOS 沙盒目录结构介绍
- java 图片压缩 剪切 水印 转换 黑白 缩放
- 单个ViewController支持横屏,其他全竖屏方法-b
- SQL Server 2005无日志文件附加数据库
- Redis集合相关命令
- MVP框架 – Ted Mosby的软件架构
- Redis学习笔记~Twenproxy所起到的作用
- why microsoft named their cloud service Azure?
- C++程序设计方法2:基本语法2
- Python基础-python数据类型(四)
- cordova打包vue2(webpack)android、ios app
- MySQL中视图
热门文章
- python基础--模块的查找顺序以及相对导入和绝对导入
- spring源码学习之默认标签的解析(一)
- web前端学习(四)JavaScript学习笔记部分(3)-- JavaScript函数+异常处理+事件处理
- loadrunner录制脚本时登录密码转md5
- Android 程序员不得不收藏的个人博客(持续更新...)
- SpringMVC截图版
- 【转】基于OLSR路由协议实现Ad-Hoc组网
- CentOS 上MySQL报错Can&#39;t connect to local Mysql server through socket &#39;/tmp/mysql.scok&#39; (111)
- Linux 内存管理之mmap详解
- 【JZOJ4803】【NOIP2016提高A组模拟9.28】求导