自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一蓑烟雨任平生 也无风雨也无晴

白云一片去悠悠 青枫浦上不胜愁

  • 博客(648)
  • 资源 (3)
  • 问答 (4)
  • 收藏
  • 关注

原创 双减之下,在线教育的量骤减,分享一下12种WebRTC有趣的用法

背景2020年6月28日,头顶“全球实时互动云服务第一股”的声网Agora(以下简称声网),挂牌纳斯达克。上市当天,股价一度触发熔断机制,市值达到50.6亿美元。此后,声网的市值突破百亿美金的关口。2022年2月16日声网市值12.98亿美金。是不是这也预示着WebRTC未来的惨淡?12种WebRTC有趣的用法原文出处:12 interesting uses for WebRTC | App Developer Magazine1. 上下文应用程序您可以使用.

2022-02-16 21:00:34 505

原创 WebRTC 核心功能介绍--一篇读懂SDP PlanB UnifiedPlan(从PlanB迁移到UnifiedPlan)

开局第一句,很多人对SDP恨之入骨。SDP是基于文本,其本身并不属于传输协议,仅仅是对会话进行文本描述,SDP的协商和交换通常需要依赖其它的传输协议。之前介绍其他知识点的时候,或多或少提到过SDP,但不够详细,不够深入,没有豁然开朗的感觉。那肯定是不答应了,所以再一次深入聊一聊SDP。另外,如果英文足够好,就不需要往下看了,自己去看文档吧:RFC 8866 - SDP: Session Description Protocol啥是SDP?介绍千篇一律,互相复制的。SDP...

2022-02-15 20:21:49 11274

原创 WebRTC 核心功能介绍--一篇读懂PeerConnectionFactoryInterface RTCConfiguration PeerConnectionInterface

PeerConnectionFactoryInterface工厂类接口,用于创建PeerConnection, MediaStream 和MediaStreamTrack对象可以传入线程,自己管理线程 peer_connection_factory_ = webrtc::CreatePeerConnectionFactory( nullptr /* network_thread */, nullptr /* worker_thread */, signaling_threa

2022-02-15 19:30:30 843

原创 WebRTC 概念介绍--一篇读懂source、track、sink、mediastream

名词解释source:媒体流提供者track:应用持有的媒体流,可以用来播放sink:媒体流接受者source是生产媒体资源的,sink负责消费source —(提供媒体流)—> track —(输出媒体流)—> sink对于流媒体系统来说,产生数据的装置叫Source,接收数据的装置叫Sink。如果一个source 可以属于多个track, 这样就可以让不同的sink 绑定同一个source,会导致无法应对多种状态track 中保存了一些状态信息和处理,这样就和source .

2022-02-15 19:23:04 1978

原创 WebRTC 协议介绍--一篇读懂DTLS、SRTP、SRTCP

DTLS作用资料包传输层安全(英语:Datagram Transport Layer Security,缩写为 DTLS),又译数据包传输层安全,是一种通信协议,提供UDP协议在传输层的发送安全。它能够提供与TLS类似的安全保护。DTLS常用于流媒体。DTLS与TLSDTLS is similar to TLS intentionally except that DTLS has to solve two problems: packet lost and reordering. DTLS impl

2022-02-14 21:19:06 2652 1

原创 WebRTC 协议介绍--一篇读懂ICE、STUN、 NAT、 TURN

要想了解ICE,必须先了解NATNAT网络地址转换(英语:Network Address Translation,缩写:NAT;又称网络掩蔽、IP掩蔽)在计算机网络中是一种在IP数据包通过路由器或防火墙时重写来源IP地址或目的IP地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有IP地址访问互联网的私有网络中。它是一个方便且得到了广泛应用的技术。当然,NAT也让主机之间的通信变得复杂,导致了通信效率的降低。为什么会存在公网IP和局域网IP。我们知道由于IPv4的地址是有限制的,因此不可能给.

2022-02-14 21:04:27 2070

原创 WebRTC M96 Release Notes(SDP废除Plan B,支持Opus Red冗余编码)

https://groups.google.com/g/discuss-webrtc/c/Bp8OzBzipSc切换到M96分支git checkout branch-heads/4664PSAsPlan B和Unified PlanPlan B是Chrome/Chromium独有的实现,Safari和Firefox一直支持Unified Plan,Chrome在M72已经支持Unified Plan。从某种程度上说如果后续再开发WebRTC可以不考虑Plan B的支持了,因为Unified

2022-02-13 23:10:25 2657 3

原创 WebRTC Native M96版本开篇之旅--一篇读懂代码下载、编译(ninja gn depot_tools)

欢迎来到苦逼的WebRTC下载、编译世界。depot_toolsdepot_tools是个工具包(depot是仓库的意思),里面包含gclient、gcl、gn和ninja等工具,这些根据都是使用python写的。其主要的功能是对git的增强,让代码管理和编译更加简单,要学这个的前提是要会使用git。获取DEPOT TOOLSLINUX / MAC系统:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.g

2022-02-13 20:41:10 1777

原创 一起学libcef--给你的浏览器设置cookie

很久没写关于libcef的文章了,因为自己理解的非常浅薄。我们知道浏览器有记住密码功能,就是登陆后,再次输入域名就可以直接登陆。很多时候是通过cookie来实现的。对于一个没接触过web的人,也许不理解何为cookie?Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。比如说,我们create一个brows

2020-11-18 17:40:15 32882 3

原创 为什么Go语言在中国格外的"火"

go语言推出有几年了,似乎不温不火。但是在中国范围内,确实被关注的一塌糊涂。这是2017年2月份TIOBE出的编程语言排名:在拉勾网上搜索go的职位,结果有119个(2017年2月14日搜索结果),似乎还没有那么火爆:但是在中国,很多公司,很多程序员都在谈论go语言,也就是说在中国对于go的关注异常火爆。根据谷歌搜索的统计,如下图: The graph above shows the searc

2019-07-19 08:47:22 92083 38

原创 Go实战--golang中生成读取二维码(skip2/go-qrcode和boombuler/barcode)

生命不止,继续go go go!!!这里介绍一下,golang如何生成二维码,当然是面向github编程了。QRCode百度百科: QR Code码,是由Denso公司于1994年9月研制的一种矩阵二维码符号,它具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。wiki: QR code (abbreviated from Quick Re

2019-07-18 19:33:48 108240

原创 Go实战--golang中使用JWT(JSON Web Token)

生命不止,继续 go go go !!!之前写过关于golang中如何使用cookie的博客: 实战–go中使用cookie今天就来跟大家简单介绍一下golang中如何使用token,当然是要依赖一下github上的优秀的开源库了。首先,要搞明白一个问题,token、cookie、session的区别。token、cookie、session的区别Cookie Cookie总是保存在客户端中,按

2019-07-18 19:33:38 156362 7

原创 Go实战--golang中使用redis(redigo和go-redis/redis)

生命不止,继续 go go go !!!以前介绍过golang中如何使用sqlite3: 《Go实战–go语言操作sqlite数据库(The way to go)》今天跟大家分享的是如何在golang中使用redis数据库。何为redis官网: https://redis.io/Redis is an in-memory database open-source software project

2019-07-18 19:33:28 264164 11

原创 面试题--输出两个字符数组中相同的字符

#include<iostream>using namespace std;void FindCommonChar(char a[], int lena, char b[], int lenb){ int hasha[256] = {0}; int hashb[256] = {0}; for (int i = 0; i < lena; i++) ...

2019-03-17 14:01:12 5174 1

原创 在简历上写了“精通 C++”后……

转知乎: https://zhuanlan.zhihu.com/p/31385520“亲爱的xxx同学,您好!恭喜您通过了 xxx 公司的笔试!请您于明天早 9:30 到 xxxxxx 地点进行人力资源面试,收到回复~!”我等这条短信等得太久了。想起这几个月求职的心酸、无助,再想想拜托了无数网友内推换来的是网友们的失望与笔试结果的石沉大海,看到了这条短信我简直快要哭了出来。不敢有一丝懈怠...

2018-03-09 11:07:37 22849 7

原创 Go实战--Design Patterns in Golang 之工厂模式(简单工厂、工厂方法、抽象工厂)

先看一下golang的Tiobe指数趋势: 可以看到在2017年7月,达到了最高点,之后略有下降。我坚信,2018年的7月,golang还会飙升。生命不止,继续 go go go !!!继续,golang中设计模式的探讨。 按照国际惯例,讲完单例模式,接下来就该轮到工厂模式。还是那句话,每个人对设计模式的理解都有所不同,欢迎各位探讨。何为工厂模式WIKI: In clas

2018-02-06 14:42:30 14836 1

原创 Go实战--Design Patterns in Golang 之单利模式(Singleton)

小插曲:一猎头拉了个几百人的微信群,主要是沈阳、大连从事IT工作的人,以下是某几个时段的聊天截图: 回不去的东北……很多同事都说如果我选择回东北,肯定后悔,用不了多久还会回北京。生命不止,继续 go go go !!!golang的基础知识介绍了很多很多了,主要是一些官方package的介绍。 golang的实战也介绍了很多很多了,包括了很多web框架,rest a

2018-02-03 13:51:48 7790

原创 Go实战--Golang中http中间件(goji/httpauth、urfave/negroni、gorilla/handlers、justinas/alice)

生命不止,继续go go go !!!不知不觉,2018年第一个月份已经过完,看了看一月份uv统计: 北京 9887 深圳 5088 上海 4767杭州 2834 广州 2559成都 2059 武汉 1536 南京 1444西安 982言归正传!Middlewares(中间件)wiki上对中间件的解释: 中间件(英语:Middleware),又译中间件,是

2018-02-01 13:51:18 12308 2

原创 Go实战--Closures in golang(匿名函数、闭包)

号外!!号外!!在拉勾网上搜索go的职位(北京): 2017年2月14日搜索结果:119个 2017年6月19日搜索结果:163个 2018年1月31日搜索结果:268个生命不止,继续 go go go !!!曾记得,某年某月某日,去快手面试。面试官的第一个问题就是: 面试官:“什么是闭包,说一说对闭包的理解”答:“lambda表达式,其他的不太清楚”面试官:“lamb

2018-01-31 14:51:14 9256 1

原创 Go实战--Golang Response Snippets: JSON, XML and more(http请求返回值)

号外!!!号外!!!截至 2018 年 1 月 24 日,通过统计 GitHub 上活跃用户的活动情况,对每种语言的排名结果如下: 2018 年要学习的编程语言 观察这种编程语言趋势的最好方法就是,确定具有快速增长的用户群的新兴编程语言: 明显能看到,用户群增长最快的语言分别有:Go,TypeScript,Kotlin 和 Rust。生命不止,继续 go go go !!!

2018-01-29 11:32:25 11585

原创 Go实战--Gorilla web toolkit使用之gorilla/websocket

声明不止,继续 go go go!!!关于websocket,不会陌生。 之前也有博客介绍过golang中使用websocket,其中介绍了两个第三方库: gorilla/websocket nkovacs/go-socket.ioGo实战–golang中使用WebSocket实时聊天室(gorilla/websocket、nkovacs/go-socket.io)所以,趁着介绍

2018-01-23 15:23:00 25338 1

原创 Go实战--golang获取Windows屏幕分辨率(golang如何调用dll)

生命不止,继续go go go !!!先看看博客访问量与房价的对比,以供诸位程序员寻找归宿作为参考: 言归正传。通过wmic获取屏幕分辨率(只适用于win7,不适用于win10) 在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如SMS,或者使用WMI的脚本编程API,或者使用象CIM Studio之类的工具。 如果不熟悉C++之类的编程语言或VBScri

2018-01-11 13:04:56 14436

原创 Go实战--Gorilla web toolkit使用之gorilla/rpc(gorilla/rpc/json)

生命不止,继续 go go go继续Gorilla web toolkit,今天介绍rpc.关于rpc,诸位也不会很陌生,之前也有介绍过: Go实战–go中使用rpc(The way to go)Go实战–golang中使用gRPC和Protobuf实现高性能api(golang/protobuf、google.golang.org/grpc)gorilla/rpc官网:

2018-01-05 13:45:34 4938

原创 Go实战--Gorilla web toolkit使用之gorilla/handlers

2018 就这么来了。苍老师也宣布结婚了。 黑龙江又一次火了:亚布力、雪乡宰客、林业大学学生车祸2017年12月份,tiobe上golang语言势头稍有下降。whatever 生命不止,继续 go go go !!!之前介绍过: Go实战–Gorilla web toolkit使用之gorilla/sessions(iris+sessions) Go实战–Gorilla web toolki

2018-01-04 14:07:10 7776

原创 Go实战--Gorilla web toolkit使用之gorilla/sessions(iris+sessions)

生命不止,继续go go go!!! 昨天介绍了: Go实战–Gorilla web toolkit使用之gorilla/context今天介绍gorilla/sessions: Package sessions provides cookie and filesystem sessions and infrastructure for custom session backends.特性:

2017-12-28 14:09:05 9739

原创 Go实战--Gorilla web toolkit使用之gorilla/context

感慨: 小说《人间失格》 保温杯,枸杞 中兴程序员跳楼 朴树演到“情千缕,酒一杯,声声离笛催”时的哽咽 《芳华》,芳华已逝,面目全非 …… 哎,生活不易。生命不止,继续 go go go ~~~接下来打算跟大家分享一系列Gorilla web toolkit。 gorilla是用golang写的web工具箱,里面提供了一系列的工具。 在用golang开发web中,搭配gorilla

2017-12-27 12:58:35 6472

原创 Go实战--golang中使用Goji微框架(Goji+Mongodb构建微服务)

生命不止,继续 go go go!!!今天跟大家分享一个web微框架Goji.GojiWhat is Goji?枸杞?Goji is a HTTP request multiplexer, similar to net/http.ServeMux. It compares incoming requests to a list of registered Patterns, and dispatch

2017-12-20 11:41:17 10280

原创 Go实战--golang中使用RethinkDB(gorethink/gorethink.v3)

生命不止,继续go go go !!!关于golang中操作数据库,曾经介绍了不少:Go实战–go语言操作sqlite数据库(The way to go) Go实战–go语言操作MySQL数据库(go-sql-driver/mysql)Go实战–golang中使用redis(redigo和go-redis/redis) Go实战–golang中使用MongoDB(mgo)今天继续跟大家一起学习分

2017-12-12 15:30:40 8271 1

原创 Go实战--golang中使用gRPC和Protobuf实现高性能api(golang/protobuf、google.golang.org/grpc)

生命不止,继续 go go go !!!号外号外,插播一条广告,通过博客的uv可以看到周五,程序员是不怎么干活的: 本篇博客,使用gRPC和Protobuf,实现所谓的高性能api。protobufgolang中的protobuf大家应该不会很陌生,之前也有博客介绍过: Go实战–go中使用google/protobuf(The way to go)Protocol Buffers (a.k.a

2017-12-07 12:22:27 35536 1

原创 Go实战--golang中使用号称全世界最快的JSON解析器json-iterator(json-iterator/go)

生命不止,继续go go go!!!号外号外,差不一条广告,我的博客六月到十一月UV的地域分布: golang中的使用json一点也不陌生,golang为我们提供了官方的encoding/json:Go语言学习之encoding/json包(The way to go)Go实战–net/http中JSON的使用(The way to go)今天,跟大家分享一个github上比较活的golang j

2017-12-04 14:57:08 56982 6

原创 Go实战--golang中使用go-spew(davecgh/go-spew)

生命不止,继续 go go go !!!花絮: 一系列的事儿,开始想想未来如何,要不要离开北京。利用周末,去了趟南京,感觉很好。 我的csdn博客uv访问量如下: —————————————————-悲伤的分割线————————————————–今天跟大家一起分享一个golang的第三方库go-spew。go-spewImplements a deep pretty printer for G

2017-11-30 11:31:54 8879

原创 Go实战--golang中使用echo框架、MongoDB、JWT搭建REST API(labstack/echo、gopkg.in/mgo.v2、dgrijalva/jwt-go)

生命不止,继续go go go !!!之前介绍过golang中restful api的博客,是使用redis作为持久化,httprouter作为框架: Go实战–通过httprouter和redis框架搭建restful api服务(github.com/julienschmidt/httprouter)今天,继续echo框架,这次加入mongodb作为持久化存储,使用jwt进行验证,来搭建一套r

2017-11-27 15:45:02 15496 1

原创 Go实战--golang中使用echo框架中JSONP(labstack/echo)

生命不止,继续 go go go !!!继续,echo web框架,今天就聊一聊JSONP。JSONP1、什么是JSONP?JSONP (JSON with padding) is used to request data from a server residing in a different domain than the client. It was proposed by Bob Ippo

2017-11-24 15:27:15 14198

原创 Go实战--golang中使用echo嵌入静态资源(labstack/echo、GeertJohan/go.rice)

生命不止,继续 go go go !!!使用 Go 开发应用的时候,有时会遇到需要读取静态资源的情况。比如开发 Web 应用,程序需要加载模板文件生成输出的 HTML。在程序部署的时候,除了发布应用可执行文件外,还需要发布依赖的静态资源文件。这给发布过程添加了一些麻烦。既然发布单独一个可执行文件是非常简单的操作,就有人会想办法把静态资源文件打包进 Go 的程序文件中。参考地址: http://fu

2017-11-23 12:09:53 8270

原创 Go实战--golang中使用echo框架中的HTTP/2、Server Push(labstack/echo、golang.org/x/net/http2)

生命不止,继续 go go go !!!继续echo web框架,今天搞一下http2。HTTP2What is HTTP/2? HTTP/2 is a replacement for how HTTP is expressed “on the wire.” It is not a ground-up rewrite of the protocol; HTTP methods, status co

2017-11-22 14:07:00 9656 2

原创 Go实战--golang中使用echo框架中的cors(labstack/echo、rs/cors)

生命不止,继续 go go go!!!继续搞搞echo框架,今天学习的是cors相关的内容。什么是corsCORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。跨域资源共享( CORS )机制允许 Web 应用服务器进行跨域访问控制,从而

2017-11-21 14:33:17 11005 2

原创 Go实战--golang中使用echo和MySQL搭建api(labstack/echo、go-sql-driver/mysql)

生命不止,继续 go go go!!!前面有几篇博客跟大家分享了一个golang的框架iris: Go实战–也许最快的Go语言Web框架kataras/iris初识四(i18n、filelogger、recaptcha)Go实战–也许最快的Go语言Web框架kataras/iris初识三(Redis、leveldb、BoltDB)Go实战–也许最快的Go语言Web框架kataras/iris初识二

2017-11-20 17:13:00 10354

原创 Go实战--golang中的JQUERY(PuerkitoBio/goquery、从html中获取链接)

生命不止,继续 go go go !!! jQuery应该说是家喻户晓。jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax muc

2017-11-17 15:24:08 10122

原创 Go语言学习之expvar包(公共变量)(the way to go)

生命不止,继续 go go go!!!基础还是要打好,很久没有分享golang的标准包了,今天就来一个expvar包。Package expvar概述 Package expvar provides a standardized interface to public variables, such as operation counters in servers. It exposes thes

2017-11-08 15:22:04 4864

原创 Go实战--golang中使用图片和验证码(dchest/captcha)

声明不止,继续 go go go !!!昨天分享了iris框架中,如何使用Google的recaptcha。今天就一起分享学一学golang中如何使用图片验证码以及语音验证码,当然最开始我们还是要面向github编程了。使用recaptcha其实recaptcha的使用很简单,这里不使用iris框架,也很容易自己实现的。https://github.com/haisum/recaptcha/blob

2017-11-07 13:06:21 27710 2

duilib开发dll、lib、头文件等

进行duilib开发需要的所有的dll、lib、头文件等

2015-09-02

2015年阿里巴巴面试题完美解决

2015年阿里巴巴实习生招聘,最难理解的一道算法题,完美解决

2015-04-04

重载时自增(自减)的前缀和后缀的区别

对于自增(自减)运算,前缀和后缀的优先级有所不同。在重载时候,前缀自增和后缀自增的方法也不相同,本代码详细阐述了两者的区别所在。开发平台VS2010

2014-10-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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