Websocket 群聊功能
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
这样就可以群聊了
Websocket 群聊功能的更多相关文章
- Java-->实现群聊功能(C/S模式--TCP协议)
--> Java 对TCP协议的支持: --> java.net包中定义了两个类ServerSocket 和Socket ,分别用来实现双向连接的server 端和client 端. -- ...
- day04-1群聊功能
多用户即时通讯系统04 4.编码实现03 4.5功能实现-群聊功能实现 4.5.1思路分析 群聊的实现思路和私聊的实现非常类似. 不同的是:私聊时,服务端接收到消息后,只需要找出接收方的socket并 ...
- Asp.net SignalR 应用并实现群聊功能 开源代码
ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指这样一种功能:当所连接的客户端变得可用时服务 ...
- WebSocket群聊与单聊
一 . WebSocket实现群聊 py文件代码 # py文件 from flask import Flask, render_template, request from geventwebsock ...
- websocket 群聊单聊
websocket 介绍 介绍引自 https://segmentfault.com/a/1190000012709475 群聊 from flask import Flask, request, r ...
- websocket 群聊,单聊,加密,解密
群聊 from flask import Flask, request, render_templatefrom geventwebsocket.handler import WebSocketHan ...
- ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(四) 添加表情、群聊功能
休息了两天,还是决定把这个尾巴给收了.本篇是最后一篇,也算是草草收尾吧.今天要加上表情功能和群聊.基本上就差不多了,其他功能,读者可以自行扩展或者优化.至于我写的代码方面,自己也没去重构.好的,我们开 ...
- netty实现群聊功能
[概述] 实现一个网络群聊工具.参与聊天的客户端消息是通过服务端进行广播的. 主要由两块组成:聊天服务器端(ChatServer)和聊天客户端(ChatClient). 聊天服务器(ChatServe ...
- java项目-----客户端与客户端通信--实现群聊功能的代码
这是这个网络聊天室项目的原理图: 很简单,首先ABCD是4个客户端,当A发送信息给服务器,服务器实现以广播的形式把信息全发给每个人---群发群聊 客户端代码: package com.aa; impo ...
随机推荐
- tcpdump的表达式介绍
表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表 达式的条件,则这个报文将会被捕获.如果没有给出任何条件,则网络上所有的信息包 将会被截获. 在表达式中一般如下几种类 ...
- 【洛谷P3131】 【USACO16JAN】子共七
P3131 [USACO16JAN]子共七Subsequences Summing to Sevens 题目描述 Farmer John's cows are standing in a row, a ...
- 设置Linux系统的空闲等待时间TMOUT的方法和Linux反空闲设置的两种方法
为了增强linux系统的安全性,我们需要在用户输入空闲一段时间后自动断开,这个操作可以由设置TMOUT值来实现.将以下字段加入到/etc/profile 中即可(对所有用户生效). export TM ...
- 模拟15 题解(waiting)
T1 60%算法 定义f[i][j]表示枚举到i位置,已经使用过了j个队, $f[i][j]+=f[i-1][t] ( t \in [max(0,j-k),j])$滚动一下 这是个O(n^3)的,考虑 ...
- Ajax--PHP+JQuery+Ajax解析json、XML数据、加载页面
一.JQuery+Ajax用get.post方式提交和请求数据 知识要点: $('#userName').blur(function () { var txt = $(this).val(); $.a ...
- SEO优化步骤
SEO技术并不是简单的几个建议,而是一项需要足够耐心和细致的脑力劳动.大体上,SEO优化主要分为8小步: 1.关键词分析(也叫关键词定位) 这是进行SEO优化最重要的一环,关键词分析包括:关键词关注量 ...
- Div+CSS常见错误总结
CSS+DIV是网站标准(或称“WEB标准”)中常用的术语之一,通常为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为XHTML网站设计标准中,不再使用表格定位技术,而是采用cs ...
- IntelliJ IDEA添加过滤文件或目录(转)
在idea上使用svn后,发现即使svn窗口添加过滤正则没有忽略.iml文件的提交,安装ignore插件后没发现有svn的忽略选项,最后发现这样设置就可以了: 1.Settings→Editor→Fi ...
- Mac 电脑如何卸载 node
因为刚入手「 Mac 」很多淫技还不懂,在一次使用 npm install 的时候安装出错,提示为 npm 与 node 的版本有问题,所以就想着卸载重新装一个版本. 但是因为刚使用「 Mac 」所以 ...
- python 对位运算