websocket相关调研 总结帖

最近把websocket的客户端和服务端使用过的调通的例子总结如下

摒弃XMPP,xml类的在网络传输无论是流量还是性能已经是公认的瓶颈了。
采用websocket协议,
1.是数据格式可自定义,json,流,二进制等,极大的节约了网络流量,更具灵活性
2.方向多源,性能能达到极致而且可控。
3.跨平台,在web端,ios端,android端或者pc上通用,任意整合
但是目前websocket的实现方式也有很多

java的有tomcat7支持的;netty的;java-websockt库的;还有个国内的项目宝贝鱼,使用java的多线程实现的
以上例子已经调通,可参见我的博客
tomcat7的 [url]http://haoningabc.iteye.com/blog/2124605[/url]
java-websocket.jar的[url]http://haoningabc.iteye.com/blog/2011985[/url]
宝贝鱼的这个是引用别人的
[url]http://cshbbrain.iteye.com/blog/1685217[/url]
但这些虽然有的是java的非阻塞io,但是性能局限于jvm,系统io和内存无法发挥极致。
java的优势就是就是业务代码灵活修改,但是作为im实时应用,还是欠缺很多原生的优势

其次是
python的websocket实现方案,python性能不必说了,python+fastcgi+nginx已经在互联网验证n久了
最流行的有两种websocket可用框架autobahn和tornado
autobahn用的python的twisted框架,异步编程很好的控制了性能;
Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:
它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对 epoll 的运用,
Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web 服务来说,Tornado 是一个理想的 Web 框架
这两个例子也调通了,见我的博客
autobahn
[url]http://haoningabc.iteye.com/blog/2153763[/url]

Tornado:
[url]http://haoningabc.iteye.com/blog/2164973[/url]


性能最好的是c写的libwebsocket,也被很多开源项目作为组建使用,但是开发最复杂,不适用于开发。

最优方案nginx+lua+websocket
存储使用nginx+lua+redis(或者mongo),lua只作为nginx和redis,mongo的媒介
im异步刷到缓存后,再异步刷到关系型数据库进行存储,可选mysql的等只做业务管理的操作

nginx原生基于epoll和kqueue,而且特殊需求可以模块定制,理论上数据可以达到c10k,在服务器上用jetter压测,8核16G内存的服务器普通服务器,并发轻松过4k,如果多客户机同时压测得到效果一定更好
实现的例子,
[url]http://haoningabc.iteye.com/blog/2165119[/url]
[url]http://haoningabc.iteye.com/blog/2168717[/url]
特殊情况nginx定制,nginx模块开发的例子
[url]http://haoningabc.iteye.com/blog/2024776[/url]


综上,以业务逻辑和im实时性能综合考虑
im实时通信的部分,最核心部分使用nginx+lua直接操作websocket,数据存mongo和redis缓存,定时同步到mysql
复杂也业务逻辑又偶尔实时通信的部分使用python,便于灵活的修改
管理平台的业务代码可以使用java或者php的形式(尽量不使用),

具体开发可根据需要的时间成本而定

ios客户端,也测试了几中方法,最可行就是SocketRocket
调通的例子
[url]http://haoningabc.iteye.com/blog/2125460[/url]

如果使用无服务器形式,ios点对点可以使用苹果的mutipeer,结合蓝牙的方式
调通的例子
[url]http://haoningabc.iteye.com/blog/2155794[/url]

以上所有完整代码都在[url]http://github.com/killinux[/url]可以找到
任何需求可以我来做也可以随时找我讨论技术

还有一些ios的仿微信界面的,ui相关的,这里略

go的http://www.cnblogs.com/yjf512/archive/2013/02/18/2915171.html

如果是websocket传文件,比如图片等二进制

使用
[url]http://haoningabc.iteye.com/blog/2266661[/url]
WhatsApp WEB端监控调研 社群主群(Announcement Channel) 用于发布全体成员都能看到的“官方通知”✅ 只有社群管理员可以发言❌ 普通成员不能回复、不能发消息社群子群(Subgroups)比如:“前端群”、“后端群”、“闲聊群”✅ 所有加入的成员都可以自由发言,除非群设置了权限限制WhatsApp 主要帳號電話號碼與一次性代碼來連結裝置。主要有两种方式, 不需要密码的授权登录注册:您的主要手機不需保持連結到 WhatsApp 的狀態,即可同時連結最多四部裝置。您必須每隔 14 天登入一次主要手機,讓連結裝置保持登入 阅读详情

相关推荐

远程桌面调研

noVNC项目是通过取消VNC Client的安装,直接通过浏览器访问noVNC,然后由noVNC间接访问VNC server来达到client web化。如果有很多机器需要被远程,也不必每台都部署noVNC+websockify, 只需部署到一台设备,其他设备分别只安装VNC Server端即可,后续访问时在 浏览器请求地址中带上请求参数,送到noVNC,由websockify代理到实际被访问的设备,具体操作可以通过在noVNC根目录。作为被控端主进程,即可以以独立进程的方式启动,同时也可以注册为。

m0_51923036的博客 1348

WebRTC+libwebsockets+Janus的秒开实践

客户端SDK集成了WebRTC和libwebsockets,服务端使用了Janus,需要支持拉流秒开。 关于WebSocket Janus作为SFU,使用WebSocket协议与客户端通信。客户端在挑选开源库时其实没有太多选择,C层主要是libwebsockets库,这个也是Janus使用的库,还有Boost的Beast库,不过比较新,不敢踩坑,IOS上有RocketSocket,但不是跨平台,因此最后采用了libwebsockets库。 libwebsockets库主要的问...

firstcode666的博客 1135

高性能WebSocket压力测试工具设计与实战

除内置测试集外,ATS支持通过Python脚本扩展自定义用例。例如模拟超大帧传输:此类定制化测试可用于评估服务端内存管理和反DDoS策略的有效性。工具名称协议支持图形界面分布式压测脚本灵活性适用场景✅ ws/wss✅✅企业级全链路压测✅ 深度覆盖❌(CLI为主)❌✅(Python扩展)协议合规性审计✅ 基础功能✅ Web UI❌❌快速原型验证。

weixin_42576410的博客 843

由浅入深介绍 Python Websocket 编程

python websockets 提供的 websocket 实现框架,支持双向通信,长连接。 编程比socket 更简单,异步方式实现 服务器端 、客户端 ,javascript 的 websocket源代码。

Python技术探索 3万+

libwebsock:一个易于使用且功能强大的开源 websocket 库,用 C 编写

libwebsock 易于使用的用于 websockets 的 C 库 该库允许快速轻松地开发使用 websocket 协议的应用程序,无需关注 websocket 协议细节,甚至套接字细节。 它为您处理套接字和协议,让您可以专注于应用程序的核心逻辑。 对于那些希望使用自己的套接字的人,该库能够绑定到现有的 fd,允许您创建自己的套接字逻辑并简单地在它们上触发 libwebsock 事件。 支持将您自己的 libevent 基础绑定到 libwebsocket 也正在开发中。 目前,libwebsocket 有以下特点: 基于事件回调 支持 SSL 使用 [libevent][2] 以获得最大的可移植性(在 Linux、FreeBSD 和 Mac OS 上测试) 支持 IPv4 和 IPv6 通过高速公路测试套件 可以为你处理整个socket连接 可以绑定到现有的文件描述符,

Python的websocket服务器框架

Python的websocket服务器框架 支持异步收发操作,自带说明用例,绝对好用! 2022.7.13 更新消息和处理异步!

总结使用libwebsockets开发接入层

使用libwebsockets进行开发的注意事项

做事先做人! 3万+

Python基于Flask框架个人博客网站设计

## 一个注重创作的轻博客系统,选用python语言flask框架开发,前端采用bootstrap4轻量模板,注重内容创作与工具开发 ## 用到的技术:python,flask,flask-wtf,flask-sqlalchemy,markdown,bootstrap4,mysql 功能说明:博客功能,撰写文章,文章列表,文章分类,标签管理,推荐文章,内置图床,网站设置,会员注册,邀请码。目前用户注册登录后只能修改个人密码,不能发布文章,这个主要是给管理员个人后台发布博客用的! 管理员账号密码: admin/admin 用户账号密码: dashen/123456

Websocket数据解析全过程

之前在协助建军做自动通知前端刷新和最近分片上传大文件的时候都使用到了websocket,对websocket做了一些调研,这篇文章就跟大家一起分享一下。 websocket的使用场景: 一般我们做聊天室这种需要保持通讯状态的功能,如果是用HTTP协议去做的话,需要客户端一直做长轮询去查询服务端是否由新消息,再显示在客户端上,这是因为HTTP本身是一个短连接,当我们客户端发起请求时,服务器...

asas043的专栏 5763

密码学实战:如何利用生日攻击破解哈希函数

本文深入探讨了生日攻击在密码学中的应用及其对哈希函数的威胁。通过分析生日悖论的数学原理,揭示了哈希函数在实际应用中的脆弱性,并提供了防御策略,如升级哈希算法、正确使用加盐技术等。文章结合实战案例,帮助开发者理解如何有效防范此类攻击,确保系统安全。

weixin_42530732的博客 191

Axure原型模板与元件库APP交互设计素材(附资料)

在Axure中,手机模型是展示APP或小程序界面效果的重要工具。通过导入手机模型元件,设计师可以更加直观地模拟真实设备的显示效果,从而更准确地评估设计的可行性和用户体验。Axure官方及第三方资源库中提供了多种品牌和型号的手机模型,如iPhone、Android等,设计师可以根据项目需求选择合适的模型进行使用。Axure作为一款强大的原型设计工具,为APP和小程序的设计与开发提供了丰富的界面组件元件库和交互设计素材。

招风的黑耳优快云 1979

Websocket协议的学习、调研和实现

本文章同时发在 cpper.info。 1. websocket是什么 Websocket是html5提出的一个协议规范,参考rfc6455。 websocket约定了一个通信的规范,通过一个握手的机制,客户端(浏览器)和服务器(webserver)之间能建立一个类似tcp的连接,从而方便c-s之间的通信。在websocket出现之前,web交互一般是基于http协议的短连接或者

ToBeTheBestman的专栏 568

C++继承与多态 - 继承多态原理01

C++继承多态原理讲解

大秦坑王的专栏 2977

IM通信相关协议调研

网络传输层 应该使用什么协议? 目前传输层协议中有TCP与UDP: 早期的IM因为服务端资源(服务器硬件、网络带宽等)比较昂贵且没有更好的办法来分担性能负载,所以很多时候会考虑使用UDP,这其中主要是早期的QQ为代表。 时至今日,TCP的服务端负载已经有了很好的解决方案,加之服务器资源成本的下降,目前很多IM、消息推送解决方案也都在使用TCP作为传输层协议。不过,UDP也并未排除在IM、消息推送...

xlikec的博客 426

vscode中使用PlatformIO创建工程加载慢

解决使用VSCODE+PlatformIO中,第一次新建工程一直加载的问题

Reasally的博客 4972

工业级Modbus ASCII实时监控系统(WinForms完整实现)

本文介绍了一个基于WinForms的工业级Modbus ASCII实时监控系统实现方案。该系统采用经典工控界面布局,包含串口配置、数据采集控制和实时数据显示三大区域。核心功能包括:串口通信参数设置、Modbus从站地址配置、寄存器数据采集、实时数据表格展示和趋势图绘制。系统通过ModbusAsciiClient类实现通信核心,采用定时器轮询机制采集数据,支持最多100个数据点的历史趋势显示。界面设计注重用户体验,配置区位于左侧,主显示区在右侧,底部为状态和日志区,符合工业控制系统的操作习惯。代码示例展示了窗

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 277

spring 环境使用原生websocket_再谈 WebSocket 论架构设计

导语本篇文章以websocket的原理和落地为核心,来叙述websocket的使用,以及相关应用场景。websocket概述http与websocket如我们所了解,http连接为一次请求一次响应(request->response),必须为同步调用方式。而websocket为一次连接以后,会建立tcp连接,后续客户端与服务器交互为全双工方式的交互方式,客户端可以发送消息到服务端,服务端也可...

weixin_39901412的博客 466

手把手教你完成YOLOv8分类识别界面搭建,使用Qt6设计YOLOv8分类识别系统,前台系统+后台管理系统开发实战,全网最详细教程

本项目基于YOLOv8分类模型,结合PySide6框架开发了一套图形化分类识别系统,支持图片、视频和摄像头实时检测。系统包含以下功能: 分类识别模块:完成图像/视频目标分类,界面展示检测结果。 用户管理模块:支持登录注册、头像修改、密码重置等功能。 AI问答模块:集成DeepSeek大模型接口,实现流式输出对话。 后台管理系统(第二版新增):管理员可管理用户信息及个人中心。 系统采用MySQL数据库存储用户数据,并提供完整的UI界面与交互逻辑。代码已开源,适用于毕业设计或快速部署场景。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 825

js websocket同步等待_从理论到综合实例,终于弄懂了双工通讯协议websocket!

小Hub领读:websocket是双工通讯协议,STOMP是简易文本协议,让传输内容更加简单,socktJS是为了解决浏览器不支持websocket协议切换到其他协议解决问题。如果大家看了这篇文章不懂的话,我可以自己写篇文章介绍给大家,带git地址的。西格玛的博客http://lrwinx.github.io/本篇文章以 websocket 的原理和落地为核心,来叙述 websocket...

weixin_28881989的博客 1340

【ARMv8 异常模型入门及渐进7 - GIC及安全中断介绍】

GIC-v3中,引入了支持2种安全状态(secure state),也就是对于中断,根据secure状态,分为安全中断和非安全中断。当然也可以只支持一种安全状态。这里的2种安全状态和1种安全状态,主要是影响中断分组,所使用IRQ和FIQ管脚的映射,以及gic中的寄存器访问。

CodingCos的博客 2116

基于DPCNN实现电商情感分析任务

下载链接项目中使用的模型是DPCNN,在模型中我们定义了三个组件,分别是embedding层,卷积层和全连接层。Embedding层:将每个词生成对应的嵌入向量,就是利用一个连续型向量来表示每个词卷积层:提取语句中的语义信息Linear层:将结果映射成2大小用于二分类,即正反面的概率。

优快云 精品推荐 1629

java socket 性能测试_websocket性能测试工具调研对比

此文已由作者侯本文授权网易云社区发布。欢迎访问一、工具选型gatlingnode.jsjmeterjava websocket这些工具都是可以支持websocket协议的工具,主要从以下几个方面进行对比:工具使用的难易程度测试工具的资源开销和性能测试平台结合的难易程度二、对比过程对比场景5000个用户,每秒钟发送100个登录请求,并保持链接5000个用户,每隔5s发送一条点对点消息,即发送消息频率...

weixin_36087045的博客 1004

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

angular集成websocket_基于Angular4的前端WebSocket实现方式的更换

之前用的是好不容易找到的一个日本人写的Angular4的WebSockert组件,名字叫simple-ng-websocket,但是据有人说在刚出的Angular5中这个组件不能正常工作,所以就又调研其它替代方案,后来发现Angular4+中可以直接使用Websocket,并不需要另外引入其它组件。本文几乎抄自《前端 - Angular2与websocket结合使用》。from chart.ser...

weixin_33534991的博客 348

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

websocket区分不同的用户_从理论到综合实例,终于弄懂了双工通讯协议websocket!...

西格玛的博客http://lrwinx.github.io/本篇文章以 websocket 的原理和落地为核心,来叙述 websocket 的使用,以及相关应用场景。http 与 websocket如我们所了解,http 连接为一次请求一次响应 (request->response),必须为同步调用方式。而 websocket 为一次连接以后,会建立 tcp 连接,后续客户端与服务...

weixin_39579726的博客 1770

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

再谈 websocket 论架构设计

导语 本篇文章以websocket的原理和落地为核心,来叙述websocket的使用,以及相关应用场景。 websocket概述 http与websocket 如我们所了解,http连接为一次请求一次响应(request->response),必须为同步调用方式。 而websocket为一次连接以后,会建立tcp连接,后续客户端与服务器交互为全双工方式的交互方式,客户端可以发送消息到服务端,...

极客神殿 1057

Nginx+Django实现Websocket功能

Nginx+Django实现Websocket功能 1 前言 软工大作业的服务器实现了一个自动聊天机器人的功能,经过测试在Django自带服务器中没有问题,但是在部署到Nginx后,出现了Nginx不能成功转发的问题。 经过调研后,发现是之前一直使用位于8080端口的uwsgi服务器接收从nginx监听的80端口发送来的请求,而对于websocket请求,应当使用asgi服务器来处理,因此使用uwsgi无法正常的处理websocket请求,从而出现错误。 对于wsgi和asgi,可以简单的介绍: WSG

m0_50539226的博客 788
上一篇: nginx websocket的helloworld
下一篇: emacs autocomplete
linux内核控
博客等级 码龄19年 41粉丝 638原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值