- 博客(80)
- 收藏
- 关注
原创 使用wireshark抓包理解tcp协议和tls
首先下载安装打开软件1.选则自己连结的网络;此时就会捕获的数据2.加上端口过滤。3.启动一个本地的http服务(这里采用的nodejs4.一个TCP报文段的最大长度为65495字节.TCP封装在IP内,IP数据报最大长度2^16-1,头部最小20TCP头部长度最小20,所以最大封装数据长度为TCP固定首部20个字节,即除去选项及填充同步序列编码;当前包序列号;==SynSeq;下一个包的的序列号 ==Seq确认序号==确认序号 + (对方)数据包长度点击SEQ=0。
2023-04-24 16:47:10
2507
原创 typescript中array.filter的用法和ts中is的作用
此时就可以了,filter函数筛选类型时 要返回一个类型谓词;要不然ts是不知道你缩减了类型的;关键字,它被称为类型谓词,用来判断一个变量属于某个接口或类型。当我要帅选出所有A类型数据时,用filter判断是否有a属性;可以看到filter是接受泛型的:泛型S受T约束;此时你会发现 ts的推导类型并没有改变,还是。可以看到一个"类型xxx必须为类型谓词"不应该是boolean吗?这个时候就会疑惑 啥是类型谓词;TypeScript 中的。
2023-04-20 11:31:45
1145
原创 vscode中typescript的相关配置
typescript中别名(alias),jest,ts-node,apidoc等相关配置及示例如何配置别名
2022-11-17 14:36:41
1202
原创 关于JavaScript中reduce的使用场景
(花色简称: 红桃-H, 梅花-C, 方块-D,黑桃-S)定义一个函数,让用户选择两张扑克牌, 函数返回所有可能的顺子组合, 如果能形成同花顺,在开始前打印(SF).然后计算每一种顺子不同花色的排列组合;顺子的长度相当于for循环的层数 ,也就是递归的次数;,利用reduce去递归,比起正常递归调用,思路更加清晰, 每一步结果一个自动传下去;打印结果: SF->DA, D2, D3, D4, D5。顺子固定长度为5张牌,不用考虑K之后到A的情况。是从1开始的,而不是0开始。顺子就是一个排列组合问题,
2022-11-14 11:59:30
715
原创 Promise/A+实现Promise
const PENDING = 'PENDING';const FULFILLED = 'FULFILLED';const REJECTED = 'REJECTED';const resolveMyPromise = ( myPromise: MyPromise, x: any, resolve?: (result: any) => void, reject?: (err?: any) => void,) => { // 如果 x === myPromise,则会造成循
2022-03-04 19:29:32
212
原创 koa响应http流
koa2中的如果所有中间件走完 没有设置ctx.body则会响应404import recorders from '../../recorder';import { IMiddleware } from 'koa-router';import https from 'https'; const getStreamTexts: IMiddleware< any, { query: { envName: string; streamId: string; startI
2021-08-30 18:33:00
811
原创 关于对ffmpeg中SAR/DAR/PAR的理解
SAR: 相当于从原始图片中取出单位面积的S1的像素点渲染到播放器的S2中的宽高比。(上图SAR=4:3)DAR: 相当于把原始图片中所有像素点按照SAR的值渲染到播放器中后播放器的宽高比。(上图DAR=16:9)PAR: 相当于把原始图片中 (所有横向的像素点):(所有纵向的像素点)。(上图PAR=4:3)DAR=PAR*SAR
2021-07-28 18:34:09
3403
原创 nodejs中箭头函数、定时器以及普通函数中的this指向
this相当于某个作用域的上下文;bind(this)相当于在运行时传入一个上下文替换原有this;而箭头函树相当于在函数作用域内锁定上下文this;class A { public name: string; constructor() { this.name = 'a'; } public a() { console.log(this.name); }}class B { public name: string; constructor() { this.name
2021-07-06 17:17:05
445
原创 nodejs使用promise和process.nextTick实现暂停
export default class A { public Resume: () => void; public Paused: Promise<void>; constructor() { } public Start() { process.nextTick(async () => { await (this.Paused || Promise.resolve()); console.log('runing job'); // 此处必须要用set
2021-06-03 16:54:03
600
原创 nodejs按固定大小读取文件
1.流式读取:const readstream = fs.createReadStream('test.mp4'); let i = 0; console.time('readtime'); readstream.on('readable', () => { let chunk = readstream.read(8192 * 1024); while (null !== chunk) { console.log(`file${++i} md5: ${md5(chunk)}`);
2021-01-13 13:59:00
1142
原创 ioredis自定义函数以及在ts声明文件库添加声明
在incude中添加声明文件夹:types/*添加ts的配置文件:// tsconfig.json{ "compilerOptions": { "experimentalDecorators": true, "module": "commonjs", "esModuleInterop": true, "allowSyntheticDefaultImports": true, "target": "es6", "noImplicitAny": true, "moduleRe
2020-07-15 16:36:10
820
原创 前端实现图片压缩
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>图片压缩</title></head><body> <input type="file" name=
2020-06-24 15:38:36
274
原创 js小游戏 - 五子棋人机
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="" type="image/x-icon" /> <meta http-equiv=
2020-06-02 18:45:15
815
原创 js小游戏 - 消灭星星
github地址简介:刚学js的时候写了一个消灭星星的小游戏的, 现在改进下算法,复用dom加快渲染;其中所有定时器只是用来演示 算法的过程。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title&
2020-06-02 17:58:20
969
原创 WebAssembly之js调用c/c++代码
安装emscriptenwindows系统 建议采用wsl安装比较方便;示例test.c:#include <stdio.h>#include <emscripten/emscripten.h>int EMSCRIPTEN_KEEPALIVE myFunction(int argc, char **argv){ printf("这是一个测试函数\n"); return 0;}编译: 会生成test.js test.wasm;(详细编译命令看官网) emc
2020-05-22 12:25:14
1628
原创 在ubuntu上交叉编译
说明使用交叉编译工具 i586-mingw32msvc-g++。安装echo “deb http://us.archive.ubuntu.com/ubuntu trusty main universe” >> /etc/apt/sources.listsudo apt-get updatesudo apt-get install mingw32使用i586-mingw32msvc-g++ test.c -o test.exe...
2020-05-20 10:47:56
648
原创 前端将一个canvas的动画,录制成一个视频
requestAnimationFrameindex.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <script src="whammy.js"></script></head><body> <canvas id="canvas
2020-05-09 17:35:49
2210
1
原创 electron安装+vue实现录屏的的demo
github地址:https://github.com/zengwangqiu/electron-vue安装electron最好采用cnpm主进程main/index.tsimport path from "path";import window from "./window";import { dialog, app, ipcMain, globalShortcut, Notification, shell, screen } from "electron";let mainWindow:
2020-05-09 17:20:16
7806
6
原创 使用ffmpeg将rtmp流转成hls,使用video.js播放
服务端 ts-node server.tsserver.tsimport express from 'express';const app = express();app.all('*', (req, res, next) => { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Headers', 'Content-Type,Content-Length, Authoriz
2020-05-09 16:49:01
2227
2
原创 chrome插件demo
chrome插件manifest.json{ "name": "Desktop Capture", "description": "Allows you to capture your desktop for use in video applications", "version": "0.1.0", "manifest_version": 2, "background": { ...
2020-04-07 12:35:31
525
原创 canvas裁剪视频流
captureStreamdrawImagegetImageDataindex.html文件:<!DOCTYPE html><html><head> <style> body { background: black; color: #CCCCCC; } #c2 { background-image: u...
2020-04-07 11:49:25
891
原创 chrome浏览器录屏
getDisplayMediaMediaRecorder下载的视频格式一般播放器放不了!【vlc播放,或者使用ffmpeg转下码】index.html文件如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" c...
2020-04-07 11:26:58
1958
原创 使用request模块上传文件
const Promise = require('bluebird');const request = Promise.promisify(require('request'));const fs = require('fs');const getFileHash = function (filepath, type, start, end) { return new Promis...
2019-03-22 19:34:01
2908
原创 nodejs把文件按字节分割
function fileSplit(inputFile, splitSize, outPath, ext) { let i = 0 function copy(start, end, size) { return new Promise((resolve, reject) => { if (start >= size) { ...
2019-03-22 19:27:48
1614
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人