websocket

JMeter测试WebSocket的经验总结

瘦欲@ 提交于 2021-01-17 05:51:15
最近有一个微信聊天系统的项目需要性能测试,既然是测试微信聊天,肯定绕不开websocket接口的测试,首选工具是Jmeter,网上能搜到现成的方法,但是网上提供的jar包往往不是最新的,既然是用最新版本的Jmeter4.0,那么所依赖的插件jar包也应该追求新的。所以提供了以下链接供大家下载(甚至连源码都提供): (1) Jmeter工具 (2) websocket请求模板 JMeterWebSocketSamplers (3) jetty-http (4) jetty-io (5) jetty-util (6) websocket-api (7) websocket-client (8) websocket-common 将(2)~(4)中下载的jar包放到Jmeter以下目录下,就能够被调用了: #将你下载的所有jar包,复制到 apache-jmeter-4.0\lib\ext #该目录下 一、启动JMeter windows环境打开 bin下的jmeter.bat linux环境打开bin下的jmeter.sh 由于Jmeter4.0的界面是深色的(看不清字体),默认语言是英语,我们可以调一下。先修改语言:在bin\jmeter.properties中找到#language=en,将前面的注释【#】去掉,改为language=zh_CN。这样启动后就是中文版的,然后到选项-

基于flvjs的视频自动播放

不想你离开。 提交于 2021-01-16 12:57:22
1: html < video class = "video-content" id = "video" > 您的浏览器不支持 HTML5 video! < / video > 2: 创建flv实例并播放 let videoPlayer = document . getElementById ( 'video' ) ; //获取html if ( flvJs . isSupported ( ) ) { //创建flv实例 this . Player = flvJs . createPlayer ( { //MediaDataSource type : 'flv' , hasAudio : false , //是否带音频播放 isLive : true , //<====加个这个 url : 'url' } , { //Config enableWorker : false , enableStashBuffer : false //当带音频播放时,config部分配置项尽量采取默认状态,否则过分优化会造成卡死 } ) ; this . Player . attachMediaElement ( videoPlayer ) ; this . Player . load ( ) ; //加载 this . Player . play ( ) ; //播放 } 3:停止播放 this .

Jmeter(四十三)WebSocket Sampler 和 Ajax Request

☆樱花仙子☆ 提交于 2021-01-16 09:03:08
权利被放出牢笼,就很难再被关入笼中;奴性被唤出来,腰杆和膝盖很难再直起来。                             ----宅猪《牧神记》 websocket概述: 参考:https://blog.csdn.net/minmintju/article/details/74941445 Jmeter进行websocket协议的接口测试,该类型协议的接口在网上是搜得到的,传送门: https://github.com/maciejzaleski/JMeter-WebSocketSampler/releases 下载即可。 还有依赖需要下载,链接: https://pan.baidu.com/s/1QSp21gRY28t3e6w81Qf3yw 提取码:alwl 依赖maven坐标: https://github.com/maciejzaleski/JMeter-WebSocketSampler/issues/12 将下载完成的jar 放在{jmeter_home}\lib\ext目录下,重启。 Web Server Server Name or IP:被测 WebSocket服务器的域名或IP Port Number: 被测WebSocket服务器的端口号。 Timeout Connection:链接建立的最大超时时间,单位毫秒。如果达到超时时间设置后链接未建立

Django+paramiko实现webshell

走远了吗. 提交于 2021-01-10 17:05:01
说明 基于 python3.7 + django 2.2.3 实现的 django-webshell,支持颜色显示,支持 tab 命令补全,项目地址: https://github.com/leffss/django-webssh。 参考 项目 。在参考项目的基础上做了一些优化:新增前端页面刷新确认页面(刷新会导致 websocket 连接断开)、后端 paramiko 线程创建代码优化、记录命令记录以及结果。有兴趣的同学可以在此基础上稍作修改集成到自己的堡垒机中。 所需技术: websocket 目前市面上大多数的 webssh 都是基于 websocket 协议完成的 django-channels django 的第三方插件, 为 django 提供 websocket 支持 xterm.js 前端模拟 shell 终端的一个库 paramiko python 下对 ssh2 封装的一个库 如何将所需技术整合起来? xterm.js 在浏览器端模拟 shell 终端, 监听用户输入通过 websocket 将用户输入的内容上传到 django django 接受到用户上传的内容, 将用户在前端页面输入的内容通过 paramiko 建立的 ssh 通道上传到远程服务器执行 paramiko 将远程服务器的处理结果返回给 django django 将 paramiko

websocket的应用---Django

孤人 提交于 2021-01-09 17:08:52
1.长轮询 轮询 :在前端通过写js实现。缺点:有延迟、服务器压力大。 就是客户端通过一定的时间间隔以频繁请求的方式向服务器发送请求,来保持客户端和服务器端的数据同步。问题很明显,当客户端以固定频率向服务器端发送请求时,服务器端的数据可能并没有更新,带来很多无谓请求,浪费带宽,效率低下。 长轮询 首先需要为每个用户维护一个队列,用户浏览器会通过js递归向后端自己的队列获取数据,自己队列没有数据,会将请求夯住(去队列中获取数据),夯一段时间之后再返回。 注意:一旦有数据立即获取,获取到数据之后会再发送请求。 用户发来请求之后,最多会夯住N秒(30s),因为有消息的时候回立即返回,没有消息时才最多夯N秒。 2.websocket 2.1 原理 WebSocket 是 HTML5 一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯,它建立在 TCP 之上,同 HTTP 一样通过 TCP 来传输数据,但是它和 HTTP 最大不同是: WebSocket 是一种双向通信协议,在建立连接后,WebSocket 服务器和 Browser/Client Agent 都能主动的向对方发送或接收数据,就像 Socket 一样; WebSocket 需要类似 TCP 的客户端和服务器端通过握手连接,连接成功后才能相互通信。 2.2具体实现:

一次Task.Run异常问题的排查

↘锁芯ラ 提交于 2021-01-08 16:59:13
最近在测试一个功能代码时发现一个非常奇怪的问题,主要是Task.Run引起一些不符合逻辑的错误,以下针对这一问题排查的总结。 问题代码 可以建个控制台程序来运行以下代码 class Program { static User user = new User(); static void Main(string[] args) { for (int i = 0; i < 50; i++) { Task.Run(user.Init); } System.Threading.Thread.Sleep(-1); } } public class User { private bool mInit = false; private Task OnInit() { Console.WriteLine("User init"); System.Threading.Thread.Sleep(1000); return Task.CompletedTask; } public void Init() { lock (typeof(User)) { if (!mInit) { var task = Task.Run(this.OnInit); if (!task.Wait(5000)) { throw new TimeoutException("user init error!"); } mInit

开源IM项目-InChat登录接口设计与实现(基于Netty)

。_饼干妹妹 提交于 2021-01-08 08:11:42
小弟正在做的一个开源IM项目,目标是实现一个轻量级、高效率的支持聊天与物联网的通讯框架。昨天刚刚出的设计稿并再今天做了实现。 项目是基于Netty的二次开发,关于Netty我这里就不再介绍了,懂的人自然都懂。我的预算是做一个所有企业或组织可以引用的Maven项目,并且是基本上开箱即用,简单实现对应的配置与重写方法就可以搭建自己的IM项目(某Q、某信的效果)。 本文着重介绍的是登录接口的设计与实现。 设计思路 关于InChat统一登录的接口设计,设计针对小程序、APP、Web端的登录作用,所以将作为token的形式登录InChat的WebSocket长连接,用户服务器做sso的认证登录后得到token后直接发送login信息到InChat,用户服务器需要重写InChat中的verifyToken方法校验自己的的Token信息是否有效,正常则启动长连接。考虑到token失效问题,WebSocket长连接的登录仅做初次登录,接下来考虑以心跳形式保持链接状态(pingpong),使用token认证是为保护InChat链接的常规化(目前暂时这样设计后面根据使用情况更改设计) 由于目前大部分的Web项目或基于IM的项目登录可能存在多端的单点登录,所以我选用了Token的形式,为什么登录后还需要用token再来websocket这边校验一次呢? 因为你登录的是web应用程序端的

Socket.IO Best way to send messages between two users? [closed]

Deadly 提交于 2021-01-08 05:29:49
问题 Closed . This question needs to be more focused. It is not currently accepting answers. Want to improve this question? Update the question so it focuses on one problem only by editing this post. Closed 4 years ago . Improve this question I want to know what is the best way to send messages between two users? I know you can do rooms and join them but you have to "create" them first. Think of it like chat messenger. You only show the messages you recieve between those two users. I can do one

uni-app实战仿微信app开发

帅比萌擦擦* 提交于 2021-01-07 17:55:34
适用人群 具有Html+Css+JavaScript基础,有一定的Vue.js基础,挑战高薪职位 课程概述本季度为uni-app + egg.js 实战仿微信app和小程序全栈开发,开启纯nvue原生渲染,大大提高性能。一次开发,同时搞定Android、iOS和小程序端等。 攻城狮 目录 章节1:项目介绍试看 章节2:环境搭建和项目创建 课时2视频创建项目和开启原生渲染08:35 章节3:全局配置 课时3视频引入全局样式(一)08:11 课时4视频引入全局样式(二)08:15 课时5视频引入自定义图标库(一)07:51 课时6视频引入自定义图标库(二)全局引入02:56 课时7视频引入自定义图标库(三)兼容多端05:28 课时8视频配置tabbar底部导航09:21 课时9视频配置globalStyle03:00 章节4:聊天列表页开发 课时10视频头部导航组件开发12:43 课时11视频 图标按钮组件封装05:11 课时12视频封装头部导航组件(一)06:46 课时13视频 封装头部导航组件(二)08:25 课时14视频开发聊天列表组件(一)11:32 课时15视频开发聊天列表组件(二)09:04 课时16视频封装头像组件04:34 课时17视频badge组件开发06:23 课时18视频封装badge组件05:39 课时19视频封装聊天列表组件08:52

How to do object detection on a video stream coming from a websocket url

柔情痞子 提交于 2021-01-07 04:15:09
问题 I am getting a stream from a source which I made so that it can be accessed at a particular websocket URL (Not sure if this ideal and would appreciate any other architectures as well). I need to now do object detection on this video stream, and thought of the architecture that I will connect to the websocket URL through a client websocket library like websocket in a server which is made through flask or fastapi, and then again stream the object detected video to multiple clients through