自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Andy Tools

闻道有先后,术业有专攻,达者为师

原创 浏览器去广告(Adblock Plus离线安装)

如何干掉恶心百度联盟(推广)广告: 这里隆重推荐Adblock Plus。 最近实在受不了百度搜索结果里面广告,还有各大网站内嵌的智障广告(CSDN) 1 chrome中安装adb lockPlus 2 离线安装 2.1 下载crx文件 2.2 打开chrome 在地址...

2018-07-17 19:09:39 44885 5

原创 阿里云资源编排(ROS)Sample

原来用过AWS cloudFormation 服务感觉用于帮客户搭建环境很好用。近期需要客户创建一个阿里云OSS 桶资源,并给一个对应用户mobile APP访问的RAM角色和一个用于server访问的子账号。 文档写了5小节,整个过程比较繁琐,如果需要客户手动操作可能会造成一些困扰。所以这里就看...

2020-05-28 19:49:40 13 0

原创 JavaScript forEach与async/await

近来发现平时使用JavaScript 数组Array.forEach上存在误区。这里描述一下使用场景:简单来说就想对数组进行遍历,遍历中依次进行串行查询。具体到场景就是:对数据库数据进行读取得到一组用户id。然后又分别对该组用户id进行遍历 对每一个用户id进一步查询数据库得到结果。这里使用才发下...

2020-05-27 19:23:17 15 0

原创 JavaScript 格式化显示JSON

先说结论,使用JSON.stringify方法 第三个参数参数格式化显示,使用标签保留空格和换行符: JavaScript: const jsonString = JSON.stringify(testjson, null, '\t'); Html: <pre> j...

2020-04-22 18:15:06 64 0

原创 windows 环境下 ts报错 error TS1005: ';' expected.

环境: vscode 3.4.3 ts 3.8.3 tsc 1.0.3.0 function sayHello(person: string) { return 'Hello, ' + person; } let user = 'Tom' consol...

2020-04-13 19:59:23 293 0

原创 nodejs 处理文件上传(express)

在实际开发功能中,经常会有涉及到文件上传的需求。这里简单记录一下文件上传处理的sample。具体场景还需要进一步开发。 文章目录1 使用binary方式上传2 Chunked方式上传3 x-www-urlencoded 对值进行base64编码上传文件4 表单上传5 断点续传(分块并发上传)/大文...

2020-02-28 17:50:30 176 0

原创 handless浏览器对webrtc压力测试

如何对webrtc转发服务器进行压力测试是一个很有意思的问题。因为webrtc客户端实际上使用的造成压力主要是码流而传统的HTTP并发请求。最近主管对自建webrtc服务器性能产生了疑问,于是准备1000路webrtc连接下压力情况。这里分享进行压测的思路及方式和一些可以说的结论。这是自己想的方案...

2020-02-17 11:02:36 649 3

原创 webrtc基础概念与连接流程

今天在学习AWS KVS(Kinesis Video Streams)服务时发现它对webrtc有一篇说明解释的很好,这里摘录并整理一份以供向它人介绍webrtc工作流程。 文章目录1 webrtc术语Signaling channel(信令通道)Peer(对等节点)Session Travers...

2020-01-16 09:47:52 229 0

原创 视频分辨率别称

经常提到硬件或者驱动的同事说我们的IC支持HD ,FHD 之类的。他们提供的配置文件里面也有直接填这些参数,比如VGA HD。这里记录一下翻到视频分辨率的别称的内容: 视频输出格式: VGA:640480 HD:1280720 //HD一般指720p以上的分辨率,就是高清 High De...

2020-01-02 19:27:03 126 1

原创 Webrtc 强制终端只使用turn服务器(releay)

相信有很多小伙伴也会遇到和我一样的问题,怎么强制webrtc client 仅使用turn转发不使用p2p 和host。面临的场景是想要测试Turn服务器压测。但目前host p2p都能拿到,这两种情况则无法对turn服务器造成压力。 Google资料获取到了两个关键信到的两个解决方案:https...

2019-12-30 11:47:28 472 1

原创 AWS S3 监控请求数及流量

AWS S3 云存储 是按照存储容量,请求数,及网络流量三个维度进行收费。而如果涉及到使用S3 对外提供SaaS服务,成本分布及估算自然称为比较重要的需求。自然而言需要监控以上三个指标。 先上官网说明性文档:https://docs.amazonaws.cn/AmazonS3/latest/dev...

2019-12-10 20:01:30 380 0

原创 JavaScript 随机数产生

今天要执行一个定时任务,但又不希望所有定时任务均在同一个时刻触发。我大概想要下面这样的一个东西,希望定时任务在凌晨2点某一个分钟触发。 const min = Utils.getRandomInt(60); const time = `0 ${min} 02 * * *`; 这里...

2019-12-05 19:51:50 77 0

原创 Linux 安装Mysql 8.0

环境: 阿里云Linux ubuntu 主机 前提:以前Mysql 卸载干净(5.7真难卸载,云主机直接重装了) 一手资料官网文档 : https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/ 1 MySql 8.0 源码获取及安装 htt...

2019-12-04 19:08:41 51 0

原创 Nodejs 后端解HTTP basic auth认证

项目中一般用oauth2 认证,今天想写一个demo就在POSTMAN中填了简单认证方式。嗯… 发现在express 还没有解过 尴尬了…今天写这篇blog把这个知识点加入到菜谱。 文章目录1 Basic auth认证1.1 通用的 HTTP 认证框架1.2 基本验证方案(Basic auth)2...

2019-11-29 18:14:47 526 0

原创 AWS IOT 离线检测功能(MQTT 遗言)

本文环境基于AWSIOT 嵌入式C lib:https://github.com/aws/aws-iot-device-sdk-embedded-C 环境:ubuntu语言 : C 关于AWS IOT 基础操作可参见:https://blog.csdn.net/m0_37263637/articl...

2019-10-24 20:04:41 750 0

原创 coturn 401 Unauthorized问题排查

文章目录1 背景2 stun与turn 服务测试3 ICE 收集测试[](https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/)4 标准文档中的流程5 结论 1 背景 今天在调试webrtc C++设备...

2019-10-11 10:14:45 987 1

原创 Nodejs Buffer拼接

本文记录下最近遇到的buffer拼接问题。如果需要知道如何拼接 直接点击第二节 文章目录1 背景2 buffer拼接3 buffer 截取 1 背景 最近有一个需求需要将缩略图和视频文件合并到一起用HTTP POST 发送给服务器,服务器解析后拆成缩略图和视频文件存储到云存储中。 于是就写了下面...

2019-09-25 20:23:44 1553 0

原创 C语言 回调函数原理及实现

最近需要实现处理AWSIOT传来的消息回调函数。作为库编程,在老司机的指导下发现不能直接把AWS IOT的回调接口暴露到上层而是应该自己封装回调函数以供上层调用,这样可以更好地解耦合,上层即不需要了解下层的细节。这里就发现了原来对回调函数的使用还存在一定的误区,这里特地整理一篇文章以供查阅。实质上...

2019-08-30 18:32:38 391 0

原创 C语言 MAP

最近需要在AWSIOT shadow添加设备状态,很明显JSON这种数据状态很明显每个状态都是Key-Value这种数据类型,很自然的想到使用MAP去实现这种状态。而代码又是跑在嵌入式设备中很明显是C语言,这里就带来一个问题,C语言原生是没有MAP实现的。作为生产环境使用,自己手搓轮子难免有考虑不...

2019-08-23 13:55:17 983 0

原创 C(Unix)匿名信号量

最近编写AWS IOT 部分代码,发送设备消息时会引入多线程就会引入资源竞争,比如多个线程同时想发送消息进而导致资源占用,即会导致一个线程获得资源,另一个线程则会进入等待状态。 而如何等待则就是一个比较细节的内容。而在维基百科上有对忙碌等待描述:以进程反复检查一个条件是否为真为根本的技术。忙碌等待...

2019-08-23 13:40:16 60 0

转载 Redis缓存与数据库一致性方案

今天和室友讨论关于redis缓存与数据库同步的问题,发现对这个问题没有清晰明了的认识,在网上找到Dustin_CDS的文章发现对各种情况都进行了讨论,转载以供以后学习查阅。 本文转载自: https://blog.csdn.net/Dustin_CDS/article/details/795952...

2019-08-01 13:38:35 131 0

原创 JavaScript 对象深浅复制

最近使用使用微信推送模板消息时,数据都是通过固定的模板消息函数封装并返回, 而遇到对象浅复制的问题,导致有并发情况下,微信接口推送的是最后一个传入数据。虽然意识到了这个问题,但发现自己还没有处理过这种深复制的情况,这里整理一下,以供以后使用。 如果需要代码 直接点击2.7节中 lodash库提供的...

2019-07-31 18:20:27 56 0

原创 Webrtc SDP格式解读

因为设备端只支持H264编码方式接入,这里涉及到webrtc web端要修改默认编码器,而编码器就离不开webrtc 信令中SDP 消息的解读,读懂了 才能知道自己支持编码器的情况下对SDP的信息进行二次修改。 本文主要内容来自该说明文档:https://tools.ietf.org/html/d...

2019-07-17 20:15:15 494 0

原创 Nodejs 创建目录并写入文件

经常有遇到这种场景,向某一个路径下写入一个文件,路径不存在则创建路径并创建文件,文件存在则覆盖。就是想用一个接口就可以把数据写到某路径的文件内,而不care 路径 文件 存不存的问题。 在其他语言比较容易实现。而在node中,就有点麻烦了,因为writeAPI成功的条件是路径必须存在,而路径在no...

2019-07-12 17:50:16 3354 0

原创 C++获取时间戳(Linux)

Webrtc 信令服务器通信,需要实现samplewebrtc信令服务器中sid参数,而sid 参数是一个毫秒时间戳。web端是js很好拿到,而另一端是用C++实现的耶,C++获取毫秒时间戳(距离19700101000的毫秒数),没有做过,这里记录一波。 环境:Linux C++11 秒时间戳 ...

2019-07-08 14:19:09 2823 0

原创 webrtc SDP和candidate消息生成位置学习

本文以simplewebrtc源码为例,但实际上原生API的相应事件触发即会生成相应消息。 文章目录1 ICE消息生成及发送2 SDP 消息生成2.1 offer 消息生成2.2 answer 消息生成 1 ICE消息生成及发送 ICE消息触发是由 webrtc 原生API RTCPeerConn...

2019-06-27 18:14:45 2519 0

原创 Webrtc流程学习-SimpleWebrtc源码阅读

文章目录1 源码结构2 流程走读3 源码阅读3.1 流程API关键解读3.2 SimpleWebrtc相应代码解读3.2.1 准备阶段(1)第一个进入房间(房主)(2)加入者(后续进入房间者)3.2 建立链接(1)加入者发送offer及candidate消息(2)房主接收offer并处理后发送an...

2019-06-27 18:07:31 553 0

原创 AWS 创建EC2及使用ssh登录

AWS EC2创建的区域即右上角你选择的服务器决定。目前成都测试,下午电信联通环境下,都是绕北京到AWS 日本 首尔线路十分拥堵掉包严重,所以建议可以考虑AWS 新加坡区域,测试发现是直接从香港出海,掉包率较低。 1 AWS后台创建EC2实例 1 登录AWS EC2控制台并选择EC2服务进入EC...

2019-06-06 16:06:04 5937 2

原创 simpleWebrtc 架设方案

近期架设一次webrtc另一种开源实现simplewebrtc用于学习webrtc整体实现及架构。现在单纯P2P架构的webrtc开源服务器已经很少了且近乎没有维护。大部分都是Webrtc SFU和MCU网络模型实现,但对于物联网设备一般情况下下都是一对一通话且P2P十分重要(转发服务器开销很大)...

2019-06-06 16:03:21 506 0

原创 Apprtc 域名与ip访问同一房间无法建立链接

前一阵同事架设webrtc Google官方演示 apprtc。 实际使用中发现了一个问题,使用域名访问 和使用ip访问 同一房间时无法建立链接。这里就进行了一波debug,读读apprtc的源码顺便学习一波。 首先通过FireFox 的about:webrtc的方法查看webrtc Client...

2019-05-30 19:51:46 202 0

原创 JavaScript 对象数组操作(属性值存在,排序,最大最小)

最近需要将一个对象数组存到数据库中, 然后又要进行各种操作,这里写一个sample来记录操作方式。嗯 室友叫John,这里就写一个找John吧。sample有以下功能: 查找对象数组中某个对象属性值是否存在并返回完整对象 查找对象数组中某个对象属性值是否存在并返回Index 以对象数组中对象某个...

2019-05-21 19:49:46 257 0

原创 JavaScript 查找有序数列中缺少的最小值

最近有一个需求,需要在获取一个可用id 在0~max值范围内,且有数量限制。 该id可以被删除, 删除后新的id应补位。这里举一个例子。 规则: 比如现在一个id 都没有用则 获取到的id为0 [0] 如果继续获取则为1 [0, 1] 如果继续获取则为2 [0,1,2] 继续获取则为3 [0,1,...

2019-05-21 19:42:10 89 0

原创 AWS Client端SDK授权方案(Amazon Cognito 身份池)

文章目录1 Amazon Cognito 简介用户池身份池2 移动端通过Amazon Cognito接入架构2.1 使用用户池或公共登录提供商2.2 经过开发人员验证的身份3 实际使用3.1 创建身份池并自定义验证方案及权限3.2 账户服务器返回token及IdentityId3.3 终端使用to...

2019-05-21 19:35:55 2083 2

原创 AWS IOT使用模型及限制

1 AWS IOT接入模型 1.1 AWS shadow 使用模型 APP 通过HTTP 更新AWS Thing shadow属性控制Device ,当Device 更新完相关属性对应操作后会response AWS IOT Cloud 更新对应AWS Thing shadow中属性。 APP...

2019-05-21 19:32:43 496 0

原创 Webrtc 服务器网络模型

初次接触到Webrtc,都会了解到WebRTC实现了基于网页的语音对话或视频通话,目的是无插件实现web端的实时通信的能力。一版情况下会接触到下面的网络通话模型。 mesh SFU MCU 文章目录1 1对1通话2 多对多通话2.1 mesh网络模型2.2 SFU网络模型2.3 MCU网络模型...

2019-05-09 20:18:25 236 0

原创 Mediasoup(webrtc) Demo搭建及测试

团队大佬有点嫌弃原来p2p方案提供商,准备尝试使用webrtc评估替代可能性,所以近期开始架设webrtc的服务器。因为webrtc是一套通用协议,所以基于三方服务器进行通路测试及评估,先跑起来再逐步学习。基于技术栈就选以node接口的mediasoup这款开源服务器跑起来熟悉下套路。本文为Med...

2019-05-07 15:22:14 10794 29

原创 DynamoDB 关系建模(多对多)

前一阵在Stack Overflow 上看到一篇关于DynamoDB 建模的回答,回答很好。所以这里整理一篇文章回顾该回答,指导以后的设计。 文章目录1 Dynamodb 基础概念2 一对一3 一对多3 多对多3.1 辅助表3.2 外键集3.3 图形模式4 参考链接 1 Dynamodb 基础...

2019-04-29 09:54:55 474 2

原创 后端缓存原理及常见问题

作为 server端经常会用到缓存技术来提供降低数据库压力和提高服务性能,因为一些数据我们没有必要每次查询的时候都去查询到数据库。今天读到一篇文章加深了自己对缓存的认识,整理一篇文档以作记录。 文章目录1 缓存的基本实现2 缓存穿透2.1 原理2.2 解决方案3 缓存击穿4 缓存雪崩5 热点数据集...

2019-04-25 20:19:42 828 0

原创 makefile/gcc 向代码传递宏

今天捡起去年年初写的AWS IOT C code进行一波维护。代码通过AWS IOT 和服务器进行交互,具有基本控制功能,这是在X86平台上。但在嵌入式平台上还多了部分跑rtmp码流部分的代码。为了方便的在不同平台上调试代码不用去手动修改其中的内容今天在MakeFile中添加了平台这个变量并传入C...

2019-04-18 19:56:29 317 0

原创 gulp打包混淆支持await/async语法

最近需要对node代码进行混淆编译,原来曾经解决过ES6打包混淆的问题,但最近在代码中使用了async/await语法,原来的gulpfile混淆又出问题了。下面是记录这次问题的过程,想要看解决方案可以直接跳第三节。 文章目录1 环境2 问题3 解决方案 1 环境 待混淆代码 test.js l...

2019-04-17 18:23:56 929 0

提示
确定要删除当前文章?
取消 删除