ddiu8081

ddiu8081

10 posts published

开发

认识 WebSocket

即时通讯之路:WebSocket 的诞生2005年,随着 AJAX 技术的诞生和应用,由网页向服务端请求数据并动态渲染页面已经成为可能。那么由服务端向网页推送数据是否可行?HTTP 是一种只能由客户端发送的单向传输协议,要获取连续实时的信息确实很难。人们开始了这种花式实时获取信息技术的探索。 依靠 HTTP 协议,比较广泛的方式是轮询。客户端定时不断地发送请求,服务端把最新的数据返回。轮询时间越短,消息就越实时。这种方式弊端很明显。由于 HTTP 是无状态的,每一次请求都是完整的 HTTP 请求,大量轮询会不断携带无用的 Header,浪费资源。此外,如果服务器的消息不太多,那么大部分轰炸式的轮询请求其实都是无用的,效率很低。在实时对战游戏等一些要求低延时的场景,这种定时请求的设计也是没办法满足要求的。 轮询另一种技术是长轮询,这是对前面短轮询方案的一种改进。在长轮询技术中,客户端发送 HTTP 请求到服务端,服务端收到并保持此次连接。等到服务端有新的数据时再返回。接着客户端发起下一次请求,重新与服务器发起连接。 长轮询此外,还有其他一些更加 Hack 的方案,

开发

也来试试 Caddy Server

2020注:Caddy更新了2.0版本,本篇内容可能不再适用。2.0博主尝试过变化较大但依然比较好用,有空会在本文更新。 用过比较长时间的 Nginx,总感觉那种复杂的配置文件很不舒服,每次要去实现一个反代一个转发都要去搜索教程。在没有找到好用的图形化管理工具的条件下还是比较困难。 正巧找到了一个基于 Golang 的 Web 服务器 Caddy 。相比 nginx.conf,Caddy 的配置文件相当简洁,多站点配置、反向代理等功能可以全部在一个 Caddyfile 文件里配置。官方有一个 28秒创建一个 HTTPS 服务器。 除此之外,Caddy 还有很多 优点: 单文件,无依赖 默认支持 https,支持自动签发 Let’s Encrypt 证书 默认支持 HTTP/2 丰富的插件系统,可以快速配置缓存、CORS、