当前位置: 首页 > news >正文

苏州网站开发公司一个外国人做汉字网站

苏州网站开发公司,一个外国人做汉字网站,wordpress 浏览计数,章丘市网站建设seo会议平台后端优化方案 通过RTC的学习#xff0c;我了解到了端对端技术#xff0c;就想着做一个节省服务器资源的会议平台 之前做了这个项目#xff0c;快手二面被问到卡着不知如何介绍#xff0c;便有了这篇文章 分析当下机制 相对于传统视频平台#xff08;SFU#xff…会议平台后端优化方案 通过RTC的学习我了解到了端对端技术就想着做一个节省服务器资源的会议平台 之前做了这个项目快手二面被问到卡着不知如何介绍便有了这篇文章 分析当下机制 相对于传统视频平台SFUMCU架构 之前帮学长做压测RTC监控时10M校园网宽带标清画质只能跑到22个MCU架构 毕竟是监控就只能卡在自己宽带下了 所有资源从服务器拉取大量的上下传极大的加重了服务器压力 目前行业内如直播方式更多是使用分布式服务器 如我在北京开了直播一部分观众在广东一部分在上海 此时视频流将先传到北京服务器转发到广东服务器和上海服务器进行一个服务器的分压处理当然下面还有更多子服务器去分压 而这种形式对于我们这种学生开发者是行不通的我们只能省吃俭用租用一台公有云 而在之前开发 ESP32 Mesh 组网时来了灵感 ESP-MESH - ESP32 - — ESP-IDF 编程指南 v4.3.1 文档 (espressif.com) 我们如果做一个多人群聊类似会议平台只需要使用每个设备进行 P2P 的 RTC 推拉流可以完美减缓服务器压力 而服务器只需要负责信令汇总交换还有客户端检测保活的操作即可 甚至我的轻量级服务器也能跑上压测时用到了redis缓冲mysql 也许好的想法总是相似的网上看到了很多大佬也这样去做了MESH架构 我第一次尝试使用了 golang gin 去写一个信令交互也是有golang直接能调库使用RTC的原因 实现的并不是很理想 做了票据凭证登录邮箱 设计了 Mysql数据库大家平时多练习面试要手撕 最后实现了点对点并不是很理想。 毕竟跑在一个2核1G内存的超级轻量级服务器上的 配合其他项目。。。。单是跑起来就直接爆了几次内存也不太敢和别人聊这个项目最后成果 更别提对他进行压测 后来重新捡起来后打算直接融入到我的博客网站其中一个路由中 实现了一个保障会议成员隐私使用完无痕的会议平台。仅供学习参考 会议创建机制 一个post创建会议 会议号类似秘钥名字可填可不填不填我爬 ip 用 ip代指 房间创建后永久保留唯一留痕在这里不是说无痕吗创建的人还是要跟踪记录爬取一下的哈哈哈之前经历了sql注入还好做了防注入 爬取ip以及地点 看是谁创的 这里meeting_id作为索引指向另一张表参加此id的人群 来完成一个快速查表工作 当然此时还没加入会议 加入会议机制 对于保活和及时提出会议像我个人感受 我每次开完会更希望直接关闭浏览器实现一个全自动退出会议的方式 关闭浏览器后检测断开直接删除 我之前开发 esp32 AP 模式时哈哈哈还是esp 需要通过wifi节点的web直接对esp进行操作如小车前进后退 使用了websocket 我便考虑了websocket他可以实时检测又是全双工 完美的事物总是有缺陷的一面 我需要给他额外开端口 这可不是什么好方式又要去申请一张证书不然万一来个中间人攻击那大家的隐私不是没了吗 此时我发现了SocketIO 基于websocket可跑在443端口的神器 python示例代码 首先便是相应库使用以及对基础连接进行反应 from flask import Flask from flask_socketio import SocketIO, emit,sessionapp Flask(__name__) socketio SocketIO(app)socketio.on(connect) def handle_connect():print(A client has connected.) 接下来我们就要处理加入事件 拿到消息后,存入到session中,以便后续对断开操作 socketio.on(join) def handle_join(data):meeting_id data[meeting_id]user_id data[user_id]SDP data[SDP]CANDIDATE data[CANDIDATE]session[user_id] user_idsession[meeting_id] meeting_idprint(fUser {user_id} try to join meeting {meeting_id})连接数据库 把这个用户归类到相应room中 以便后续处理 connection connector.connect(**db_config)cursor connection.cursor()cursor.execute(SELECT * FROM meetings WHERE meeting_id %s, (meeting_id,))meeting cursor.fetchone()if not meeting:socketio.emit(join_response, {error: 会议不存在}, torequest.sid)returnprint(fa client {user_id} has joined the meeting {meeting_id})# 将用户加入房间join_room(meeting_id)# 插入参与者到数据库cursor.execute(INSERT INTO participants (meeting_id, user_id,SDP,CANDIDATE) VALUES (%s, %s,%s,%s), (meeting_id, user_id,SDP,CANDIDATE))connection.commit()拉取room的所有人进行广播,更新参与者,把拉取的数据整理成字典,传至前端 #返回此会议室的所有人的信令cursor.execute(SELECT user_id, SDP, CANDIDATE FROM participants WHERE meeting_id %s,(meeting_id,))room_participants cursor.fetchall()dist{}for i in room_participants:dist[i[0]]{SDP:i[1],CANDIDATE:i[2]}# 成功后发送确认消息socketio.emit(join_response, {status: success, message: fUser {user_id} joined meeting {meeting_id}.,room_participants:dist}, torequest.sid)# 通知所有房间内的客户端更新参与者列表socketio.emit(update_participants, participants_list[meeting_id], roommeeting_id){王宇{Can“ssss”Sdp“sss”}王{Can“ssss”Sdp“sss”}。。。。。 } 检测断联,从session读取操作对象信息 socketio.on(disconnect) def handle_disconnect():user_id session.get(user_id)meeting_id session.get(meeting_id)print(fA client {user_id} has disconnected.)leave_room(meeting_id)# 从数据库中删除参与者connection connector.connect(**db_config)cursor connection.cursor()cursor.execute(DELETE FROM participants WHERE meeting_id %s AND user_id %s, (meeting_id, user_id))connection.commit()# 通知所有客户端更新参与者列表socketio.emit(update_participants, participants_list[meeting_id], roommeeting_id) 通过以上能简单完成我们想要的效果. 测试并进行二次开发 我先对上面板块进行单元测试 发现没有任何问题, 将其与博客网站进行整体测试, 最终没有问题直接上传代码更新了服务器(2c 1g 30MB), 我们对其进行压测, 在无连接时,内存占用到了700mb 哈哈哈至少还有250mb给我们用 (我这里把 ip 限制关闭和 uwsgi 限制客户端个数关闭了 ,本来只能一个ip五个坑位,这里放开以便测试) 通过python自动构建了客户端与其连接, 当产生到320客户端的时候,成功崩了 但通过查询内存占用的时候(如下图) 发现还不到20Mb,零头都没到啊,看来不是内存原因 30/8大概在3.8mb/s 大概问题出现在宽带 但相对传统架构MCU真的节省太多昂贵的服务器资源了
http://www.hkea.cn/news/14441097/

相关文章:

  • 模板网站也可以做优化seo数据优化
  • 360免费网站建设谷歌网站地图提交
  • 网站回头率android 登录wordpress
  • 网站建设要多少钱app招聘网站开发手册
  • 机械加工厂家windows优化大师官网
  • 邢台企业网站建设报价佛山网站建设佛山网络推广
  • 深圳商业网站建设系统外贸建站与推广如何做手机壳
  • 珠海专业做网站制作产品推广方案设计
  • 教师可以做网站吗天津西青区
  • 资源网站建立网站用什么软件
  • 绵阳高端网站建设学网站建设难吗
  • 安庆做网站电话外贸常用的网站
  • 一个网站一年的费用多少缘震网络网站建设之f套餐
  • 手机版怎么做微电影网站全球十大搜索引擎排名及网址
  • 做企业网站通常哪找素材网络科技公司洛阳
  • 360网站推广官网软件wordpress 文章页模板
  • 广告手机网站制作下载微信找回微信
  • 抖音推广方式成都网站seo技巧
  • 网站里的轮廓图 怎么做的网站网站怎么做的
  • vps设置网站访问用户权限网站建设 网站推广
  • 网站开发包括哪些技术眉山做网站的公司
  • 国家企业信用网官网怎么优化一个网站
  • 个人网站怎么制作教程西地那非片的功能主治服用方式
  • 站长工具查询系统wordpress网站页面打开很慢
  • 网站谁做的比较好合肥瑶海区新楼盘在售
  • ppt做视频的模板下载网站wordpress 文章归档页面
  • 北京建设网站 公司wordpress首页展示分类页面
  • 广州网站优化推广萧山城市建设网站
  • 做网站怎么开后台广西柳州网站建设价格
  • 做古建的那些网站比较适合软件开发具体流程