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_template app = Flask(__name__) user_socket_list = [] # 存放所有链接到服务器的 socket @app.route("/ws")
def my_websocket_func():
# 获取到websocket链接.
user_socket = request.environ.get("wsgi.websocket") # type:WebSocket
user_socket_list.append(user_socket) # 每个链接上来的socket都存放到 socket列表中一份 while 1:
msg = user_socket.receive() # 通过连接等待接收客户端发送过来的消息
for us in user_socket_list:
# if us == user_socket: # 当循环到的socket链接是自己的时候
# continue
try:
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.data
var 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>

WebSocket 实现链接 群聊(low low low 版本)的更多相关文章

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

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

  2. websocket学习和群聊实现

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

  3. 基于websocket搭建简易群聊

    1.前端HTML <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&qu ...

  4. Flask 实现 WebSocket 通讯---群聊和私聊

    一.WebSocket介绍 WebSocket是一种在单个TCP连接实现了服务端和客户端进行双向文本或二进制数据通信的一种通信的协议. WebSocket使得客户端和服务器之间的数据交换变得更加简单, ...

  5. websocket实现群聊

    server # @File: 群聊 from flask import Flask, render_template, request from geventwebsocket.handler im ...

  6. 一例完整的websocket实现群聊demo

    前言 业余我都会花一些时间在tcp.http和websocket等领域的学习,现在觉得有点收获,所以把一个基于websocket的群聊功能的例子提供给大家玩玩.当然这是一个很完整的例子,包括webso ...

  7. websocket(二)--简单实现网页版群聊

    websocket可以实现服务端的消息推送,而不必在客户端轮询,大大的节省的资源,对于实时通讯来说简直是个大喜讯. 在上一篇文章中介绍了协议握手,这篇文章将通过实现简单的群聊来帮助进一步了解webso ...

  8. WebSocket群聊与单聊

    一 . WebSocket实现群聊 py文件代码 # py文件 from flask import Flask, render_template, request from geventwebsock ...

  9. WebSocket刨根问底(三)之群聊

    前两篇文章[WebSocket刨根问底(一)][WebSocket刨根问底(二)]我们介绍了WebSocket的一些基本理论,以及一个简单的案例,那么今天继续,我们来看一个简单的群聊的案例,来进一步了 ...

随机推荐

  1. 1. 通过DHCP服务器动态获取IP地址之后无法上网的解决方法

    故障:内网正常,在同一个局域网内的其它PC端通过DHCP获取IP地址并且可以正常上网. 1.通过wireshark抓包,使用ipconfig /renew时,wireshark内出现DHCP请求服务, ...

  2. php的运行模式

    1.php最常见的五种运行模式. CGI 通用网关接口 FastCGI 常驻内存的CGI CLI 命令行 Web模块  Apache等Web服务器 模块的形式加载php进程 ISAPI 已经不用了

  3. IE高级配置中,存在SSL支持协议,例如SSL TLS。

    IE高级配置中,存在SSL支持协议,例如SSL TLS. 其在注册表的路径为:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\I ...

  4. 二、Python-运算符、控制及循环语句

    一.运算符 算数运算符 +:加 -:减 *:乘 /:除 ~:取反 %:求余数(只返回余数) //:取整数(只返回整数部分) **:幂,返回x的y次方 赋值运算符:= 比较运算符:<小于.< ...

  5. ExcelPackage 读取、导出excel

    private static string GetString(object obj) { try { return obj.ToString(); } catch (Exception ex) { ...

  6. 解决安装fiddler后IE打开网页提示“代理服务器无响应”

    环境:win8.1+IE11 安装fiddler4后,启动fiddler,IE11打开百度网站,打开失败:代理服务器无响应,如图: 在网上找了各种方法,修改fiddler的设置,均无法解决这个问题,无 ...

  7. linux下使用nmon工具对服务器性能进行检测

    1.nmon工具介绍: nmon工具是linux系统下可以对服务器及系统性能进行监测,CPU信息.CPU占用.内存使用.网卡使用等.最大的好处是此工具会将结果以列表的形式或者是模拟图形化的方式展示,不 ...

  8. orcal - 增删改

    数据跟新 增删改 将emp复制到myemp CREATE TABLE myemp AS SELECT * FROM emp; 新增: INSERT INTO 表名称[(列名称1,列名称2,.....) ...

  9. as3 加载进来的swf进行缩放

    private function swfComHdl(_loader:Loader, _data:*= null){ frameLder = _loader; gameMC = frameLder.c ...

  10. 前端笔记-javaScript-3

    BOM对象 window对象 所有浏览器都支持 window 对象概念上讲.一个html文档对应一个window对象功能上讲: 控制浏览器窗口的使用上讲: window对象不需要创建对象,直接使用即可 ...