装载:HTTP2.0的奇妙日常

转载自AlloyTeam:http://www.alloyteam.com/2015/03/http2-0-di-qi-miao-ri-chang/ “多年没见,你的女神后来什么样了”晨伯总是这么八卦我的女神,而不是我。 “我给你一个表情,你自己体会一下” “你先写个小页面给我看看吧,我指导一下你吧。”晨伯一幅很吊的样子。 但是这样的小case当然难不了我,虽然多年没碰web,但是我当年可以是AlloyTeam的成员啊。很快我就啪啪啪地完成了页面。晨伯看完我写的页面,一幅“我可是有女朋友的男人”的表情,感叹了一句“现在是HTTP2.0的时代啦,给你普及一下知识点”。 HTTP2.0性能增强的核心:二进制分帧 HTTP 2.0最大的特点: 不会改动HTTP 的语义,HTTP 方法、状态码、URI 及首部字段,等等这些核心概念上一如往常,却能致力于突破上一代标准的性能限制,改进传输性能,实现低延迟和高吞吐量。而之所以叫2...

Hexo命令速记

简写 1 2 3 4 5 hexo n "我的博客" == hexo new "我的博客" #新建文章 hexo p == hexo publish hexo g == hexo generate#生成 hexo s == hexo server #启动服务预览 hexo d == hexo deploy#部署 服务器 1 2 3 4 5 6 7 8 9 hexo server #Hexo 会监视文件变动并自动更新,您无须重启服务器。 hexo server -s #静态模式 hexo server -p 5000 #更改端口 hexo server -i 192.168.1.1 #自定义 IP hexo clean #清除缓存 网页正常情况下可以忽略此条命令 hexo g #生成静态网页 hexo d #开始部署 hexo d -g #部署前先生成今天网页 监视文件变动 1 2 hexo generate #使用 Hexo 生成静态文件快速而且简单 hexo generate --watch #监视文件变动 完成后部署 1 2 3 4 5 两个命令的作用是相同的 hexo generate --deploy hexo deploy --generate hexo deploy -g hexo server -g 模版 1 2 3 4 5 6 7 8 9 hexo new "postName" #新建文章 hexo new page "pageName" #新建页面 hexo generate #生成静态页面至public目录 hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server) hexo deploy #将.deploy目录部署到GitHub hexo new [layout] <title> hexo new photo "My Gallery" hexo new "Hello...

领域模型的价值

价值 提供什么服务: 什么来体现服务:运行方式,运行过程和业务逻辑 提供的质量:如何服务,要做的事情 传统数据库为中心 业务逻辑在数据库上,结合系统代码来保证业务逻辑的实现。 以数据库为中心的开发如何的OO﹐如何多的设计模式﹐架构体系如何优美﹐它始终离不开数据库。 OO|面向对象 表现点则是直接在对象本身上﹐在于对象之间真正的交互过程﹐结果也是保留在对象的属性和对象与对象的关系中 逻辑直接存在于对象上﹐这与现实情况是吻合的。 领域模型是一种思维﹐是一种方法,是在系统分析阶段使用﹐而不是在代码中进行纯设计时的工具。不是为了OO而领域﹐不是为了最终要新增数据库而领域。在没有理解领域模型本质时,任何编码都得不到收益。 在分析或架构一个系统时,要得出系统的服务和服务场景,即user case。 领域模型的特点 领域模型是对具有某个边界的领域的一个抽象,反映了领域内用户业务需求的本质;领域模型是有边界的,只反应了我们在领域内所...

FlatBuffers简介

FlatBuffers简介 代码:https://github.com/google/flatbuffers/ 文档:http://google.github.io/flatbuffers/ FlatBuffers是一个开源的、跨平台的、高效的、提供了C++/Java接口的序列化工具库。它是Google专门为游戏开发或其他性能敏感的应用程序需求而创建。 允许在不解析和解包就可以直接访问序列化数据,而且仍然很好地向上和向下兼容,这意味着序列化对象可以多版本共存。 支持的操作系统 Android Windows MacOS X Linux 目前支持的编程语言 C++ C# Go Java JavaScript PHP Python and many more in progress… 为什么要用FlatBuffers? 对序列化数据的访问不需要打包和拆包——它将序列化数据存储在缓存中,这些数据既可以存储在文件中,又可以通过网络原样传输,而没有任何解析开销; 内存效率和速度——访问数据时的唯一内存需求就是缓冲区,不需要额外的内存分配。 这里可查看详细的基准测试; 扩展...

FlatBuffers 使用指南

FlatBuffers 使用指南 FlatBuffers序列化性能是protobuf的2倍,但size也是protobuf的2倍 编译源码 1 2 3 $ git clone https://github.com/google/flatbuffers.git #切换到最新release版本 $ git checkout v1.2.0 安装cmake http://www.cmake.org. 1 2 3 4 for mac osx $ brew install cmake for centOS $ sudo yum install cmake 用cmake构建project 1 2 3 cmake -G "Unix Makefiles" cmake -G "Visual Studio 10" cmake -G "Xcode" 在*nix系统,mac osx系统也建议使用 cmake -G "Unix Makefiles",生成Makefile,之后make & make install 编译生成flatc并安装到系统。 1 2 3 $ cmake -G "Unix Makefiles" $ make $ make insall 使用schema编译器flatc来生成基础代码 1 2 3 $ cd samples #在目录src中生成java代码 $flatc -j -o src monster.fbs 编程语言参数: –cpp, -c : Generate a C++ header for all definitions in this file (as filename_generated.h). –java, -j : Generate Java code. –csharp, -n : Generate C# code. –go, -g : Generate Go code. –python, -p: Generate Python code. –javascript, -s: Generate JavaScript code. –php: Generate PHP code. 其他常用选项: -o PATH 指定源码输出目录 -I PATH 有include语句时,指定include目录 完整的参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22...

小而精,某个垂直领域做精 sso、权限集成,可以方便集成于第三方sso,权限系统。 统一的sso、权限管理和门户系统,丰富的接口和扩展性,可以集成企业私有sso,方便集成三方模块。 1+N模式:1为统一的sso、权限管理和门户系统,N为某个专业领域模块。 以用户为中心而非企业为中心,企业选择一个扩展性和开放性较高的门户模块,作为一个中心作为基石:包括登录,权限,功能菜单的管理,三方集成配置。 各个部门用户自己选择和采购符合自己部门的saas产品,少量配置集成到1个中心即可。 未来方向: 未来SaaS: 市场规模足够大:一百亿以上人民币的年度可重复收入 有标准化的产品。 可防御: 1). 软件使用费+交易佣金(抽成)/手续费,中国交易6‰,美国2~3% 2)未来10年人工智能SaaS 3)大型客户留存率要在80~90以上 4)中腰部客户提供标准化产品,定制转化为标准化 5)金额留存 6)开放平台和应用市场:第三方开发者应用 PLG...

ngx_http_js_module 指令 Directives js_content js_import js_include js_path js_set 简单说,Nginx NJS 就是在 Nginx 的配置文件中 /etc/nginx/nginx.conf 增加几条指令 js_content,执行其中 JS 内容并输出 js_include,指定特定的文件内的 JS 代码处理请求 js_set,设置特定的 JS 变量 上面这是 ngx_http_js_module 的使用方法,然而 ngx_stream_js_module 也是基本一样的,就是多了几个指令而已 js_access,Nginx Access 阶段执行的 JS 内容 js_filter,Nginx 输出的数据过滤阶段执行的 JS 内容 js_include,指定特定的文件内的 JS 代码处理请求 js_preread,Nginx Preread 阶段执行的 JS 内容 js_set,设置特定的 JS 变量 js_content | Syntax: | **js_content** *function* | *module.function*; | | :——- | ———————————————— | | Default: | — | | Context: | location, limit_except | Sets an njs function as a location content handler. Since 0.4.0, a module function can be referenced. 作为location 内容处理器(content handler),执行一个njs函数。 | Syntax: | **js_import** *module.js* | *export_name from module.js*; | | :——- | ———————————————————– | | Default: | — | | Context: | http | This directive appeared in version 0.4.0. Imports a module that implements location and variable handlers in njs. The export_name is used as a namespace to access module functions. If the export_name is not specified, the module name will be...

WebRTC社区头部开源项目介绍 WebRTC 开源协议栈实现 libdatachannel c++实现的开源WebRTC协议栈,代码质量比较高,已经有多种语言的binding 关注量:700 https://github.com/paullouisageneau/libdatachannel node-webrtc nodejs 针对WebRTC的binding 关注量:2300+ https://github.com/node-webrtc/node-webrtc aiortc python 语言的WebRTC协议栈实现, 可以与pyav无缝对接 关注量:2800+ https://github.com/aiortc/aiortc webrtc-rs rust语言的WebRTC协议栈实现,发展较快。多个开源赞助,后期发展应该会不错 关注量:1700+ https://github.com/webrtc-rs/webrtc gstreamer webrtcbin gsteamer 中WebRTC的实现,可以适配各种硬件编解码和各种音视频输入以及输出协议 https://github.com/GStreamer Amzaon Kinesis Video SDK amazon开源的纯c的WebRTC实现,配合aws的视频分析产品服务。 关注量:700+ https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c flutter-webrtc flutter版本的WebRTC binding,随着flutter的快速发展关注比较多 关注量:2900+ https://github.com/flutter-webrtc reactnative-webrtc reactnative版本WebRTC binding 关注量:3800+ https://github.com/react-native-webrtc pion golang 版本WebRTC协议栈 关注量:8700+ https://github.com/pion/webrtc WebRTC-streamer 基于WebRTC的二次...

Open source WebRTC infrastructure 全栈解决方案: LiveKit is an open source WebRTC project that gives you everything needed to build scalable and real-time audio, video, and data experiences in your applications. Client SDKs Client SDKs are used to add audio/video functionality to your apps. LiveKit provides official client SDKs for JavaScript, React, iOS/MacOS (Swift), Android (Kotlin), Flutter, Unity (WebGL). React Native is currently in beta. PLATFORM REPO LINKS Web (JS/TS) client-sdk-js docs npm React livekit-react npm iOS client-sdk-swift docs Android client-sdk-android docs maven Flutter client-sdk-flutter docs pub.dev Unity Web client-sdk-unity-web React Native (beta) client-sdk-react-native Current supported features Feature Subscribe/Publish Simulcast Background audio Screen sharing Web 🟢 🟢 🟢 iOS 🟢 🟢 🟢 Android 🟢 🟢 🟢 Mac 🟢 🟢 🟢 Windows 🟢 🟢 🟢 mac os install wget https://github.com/Homebrew/homebrew-core/blob/master/Formula/livekit-cli.rb wget https://github.com/Homebrew/homebrew-core/blob/master/Formula/livekit.rb brew install ./livekit.rb brew install ./livekit-cli.rb start development livekit-server –dev Creating access token livekit-cli create-token –api-key devkey –api-secret secret –join –room my-first-room –identity user1 –valid-for 24h example: https://example.livekit.io/#/ LiveKitURL:ws://localhost:7880 Token:...