py 文件:

"""下载 gevent-websocket 0.10.1基于Flask + geventWebSocket 建立连接,发送消息,实现群消息功能.
"""from geventwebsocket.server import WSGIServer  # 我要WSGI为我提供服务
from geventwebsocket.handler import WebSocketHandler  # WSGI 遇到 WS 协议的时候,用WebSocketHandler处理
from geventwebsocket.websocket import WebSocket  # 语法提示,使用方法:"# type:WebSocket"
from flask import Flask, request, render_templateapp = Flask(__name__)user_socket_list = []  # 存放所有链接到服务器的 socket
@app.route("/ws")
def my_websocket_func():# 获取到websocket链接.user_socket = request.environ.get("wsgi.websocket")  # type:WebSocketuser_socket_list.append(user_socket)    # 每个链接上来的socket都存放到 socket列表中一份while 1:msg = user_socket.receive()  # 通过连接等待接收客户端发送过来的消息for us in user_socket_list:# if us == user_socket:       # 当循环到的socket链接是自己的时候#     continuetry:us.send(msg)  # 把接收到的数据在发送回去except:continue@app.route("/group_p")
def group_p():return render_template("my_ws_mp.html")if __name__ == '__main__':http_server = WSGIServer(("0.0.0.0", 9527), application=app, handler_class=WebSocketHandler)http_server.serve_forever()

html 文件:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta http-equiv="content-Type" charset="UTF-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>群聊</title>
</head>
<body>
<p>发送消息: <input type="text" id="message"><button onclick="send_msg()">发送</button>
</p>
<div id="message_list" style="width: 800px"></div>
<script>var ws = new WebSocket("ws://127.0.0.1:9527/ws");// 定义一个变量 ws,// new一个 WebSocket 对象,// 来发送 ws 协议请求 "ws://127.0.0.1:9527/ws"// 当 ws 收到消息时执行 onmessage// 触发 收到消息 用 onmessage
    ws.onmessage = function (event) {console.log(event.data);var ptag = document.createElement("p");     // 创建一个p标签
        ptag.innerText = event.data;        // p标签中的内容是 event.datavar divtag = document.getElementById("message_list");    // 找到 message_list 的 div标签
        divtag.appendChild(ptag);       //  把创建的p标签连同内容一起放到 这个 div 中
    };function send_msg() {var msg = document.getElementById("message").value;// 当点击"发送"按钮的时候,拿到要发送的内容
        ws.send(msg);// 发送出去
    }</script></body>
</html>

转载于:https://www.cnblogs.com/yuanyongqiang/p/10467009.html

WebSocket 实现链接 群聊(low low low 版本)相关推荐

  1. 【Java分享客栈】SpringBoot整合WebSocket+Stomp搭建群聊项目

    前言 前两周经常有大学生小伙伴私信给我,问我可否有偿提供毕设帮助,我说暂时没有这个打算,因为工作实在太忙,现阶段无法投入到这样的领域内,其中有两个小伙伴又问到我websocket该怎么使用,想给自己的 ...

  2. websocket学习和群聊实现

    WebSocket协议可以实现前后端全双工通信,从而取代浪费资源的长轮询.在此协议的基础上,可以实现前后端数据.多端数据,真正的实时响应.在学习WebSocket的过程中,实现了一个简化版群聊,过程和 ...

  3. js 链接websocket马上断开_WebSocket之基于STOMP协议的广播模式实现群聊功能

    又是一个老套的古诗词赏析 不恨此花飞尽,恨西园.落红难缀.--苏轼<水龙吟·次韵章质夫杨花词> WebSocket与STOMP协议 相关简介 WebSocket WebSocket 是一种 ...

  4. Node + WebSocket + Vue 聊天室创建群聊/加入群聊功能 – 第五章

    前言 本次算是做了一个小小的专题吧,"Nodejs + WebSocket + Vue实现聊天室功能",目前还在一步一步推进,之前已经可以一对一.一对多聊天了,今天就来创建群聊组, ...

  5. thinkphp6+websocket 群聊实现

    目录 一.安装扩展 二.websocket配置 1.worker_server.php ​编辑 注意事项分享:数据库形式 2.新建控制器Worker(名字随意) 总结 一.安装扩展 cd到项目下进行扩 ...

  6. django+vue3实现websocket聊天室(群聊)

    1.如何实现聊天功能 2.什么是websocket 2.1解释什么叫全双工,半双工,单工 3.websocker的概念 4.websocket的优点 5.django ,vue如何实现websocke ...

  7. websocket 群聊和单聊实现简单在线客服

    根据菜鸟教程上的解释: WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间 ...

  8. SpringBoot与webSocket实现在线聊天室——实现私聊+群聊+聊天记录保存

    SpringBoot与webSocket实现在线聊天室--实现私聊+群聊+聊天记录保存 引用参考:原文章地址:https://blog.csdn.net/qq_41463655/article/det ...

  9. springboot整合websocket实现群聊

    1.依赖 2.websocket配置: 3.前端 4.注意事项 效果: 也可以打开新窗口连接一个新用户发消息 1.依赖 <dependency><groupId>org.spr ...

  10. (3)websocket实现单聊和群聊

    1 资源下载地址  http://download.csdn.net/detail/jianfpeng241241/9325049 2  群聊图 2.1 zhangsan 发给所有人的图 2.2 发送 ...

最新文章

  1. RPA实施过程中可能会遇到的14个坑
  2. View及ViewGroup的事件分发及传递(一)
  3. vue的父子组建之间的通信(-),基于props和$emit之间的传递
  4. mysql从大到小排序_sql语句时间排序 sql语句按照时间排序
  5. 使用ffmpeg对视频、音频进行分离
  6. 计算机电源烧保险,ATX电脑电源保险换了就烧怎么维修?
  7. SpringBoot生成条形码
  8. 第6章 访问权限控制
  9. android系统分区刷机包,安卓刷机最大最专业最齐全的安卓ROM刷机包资源
  10. 通过Python实现物联网金橙子自动打标
  11. C++期末项目设计------制作一个游戏盒
  12. unity3D 自定义显示中文
  13. Java如何输出Word报告
  14. 用一部电影让你了解综合实践活动课
  15. YY游戏云的AngularJS实践(转载)
  16. Tmall商品详情接口(商品列表接口,商品销量接口,app详情接口)代码对接教程
  17. Leetcode 130. 被围绕的区域
  18. 2019年国考行测错题集(省级)
  19. 女人:不爱,请收起你的暧昧
  20. 攀爬Spring珠穆拉玛峰:Spring的启动流程

热门文章

  1. HDU 4283 You Are the One(区间DP)
  2. hMailServer邮件服务器之安装
  3. Java Thread.yield详解
  4. mysql 数据库自动备份(bat+计划任务方式)--亲测备份及还原成功
  5. 你不可不知道的CSS水平+垂直居中方案大全
  6. 20. 为包含指针的关联容器指定比较类型
  7. VS2015 设置结构成员对齐
  8. MyBatis Generator逆向工程生成实体、接口、映射文件等代码
  9. 每天一道剑指offer-二叉树中和为某一值的路径
  10. android实现nfc支付宝,支付宝首次支持NFC与LBS 实现快速手机支付