0%

对单一连接进行拆分发送合并接收,有拓展传输层 TCP 的 MPTCP 标准,也有使用普通 TCP 自定义应用层协议来实现的纯上层工具。理论上来说,前者的上限更高,后者兼容度更广。

这几天分别尝试了一下 Linux 内核支持的 MPTCP 和基于一般 TCP 的应用层工具 aggligator,来合并两台内网互联的服务器的带宽,公网带宽一台 5 Mbps,一台 4 Mbps。测试结果振奋人心,带宽真的合并了;同时出乎意料,内核级的 MPTCP 慢了一些。可能测试次数不够,可能内核优化还不完善,也可能部分配置项需要精调。

阅读全文 »

直播国际联机游戏如 Apex 容易“炸房”,可使用其“直播模式”将玩家名称转为四位数字,但如 B 站的直播平台存在四位数字的屏蔽词,开了 Apex 直播模式仍被“炸房”的情况在 B 站屡见不鲜。未提供“直播模式”的同类游戏直播风险显然更大。

自然就存在全局屏蔽指定文字的需求。

阅读全文 »

Banner

GitHub PaperStrike/Pjax ,重构自 MoOx/pjax

本文介绍 顺序执行脚本、中止 Promise、Babel Polyfills 三部分,阅读时长约 30 分钟。

使用 React、Vue 等现代框架进行前端开发用不到 Pjax,但在目前众多使用 Hexo、Hugo 等工具生成的静态博客里 Pjax 依然生龙活虎,能提供更为丝滑、流畅的用户体验。

Pjax 原称 pushState + Ajax,前者指的是使用浏览器的 History API 更新浏览记录,后者全称 Asynchronous JavaScript and XML,涵盖 一系列 用于在 JS 中发送 HTTP 请求的技术。MDN 文档另有一个 pure-Ajax 的概念,涉及的技术和目标与此几乎一致。通过 JS 动态获取、更新页面,提供平滑、快速的切换过程,是 Pjax 作者、网站开发者的初衷。

但实际实现起来,Pjax 的核心就不止 History API 与 Ajax 两者了。除了展现内容,浏览器何时切换页面、如何切换页面,并不能完全通过 pushState 模拟。

阅读全文 »

Banner

源码:PaperStrike/HeadsetControlsPC

本人是一名新晋大学生,自从有了电脑,电脑开着 B 站手机刷消息就成为了本人闲时的挚爱。为了不影响舍友 / 家人的学习生活,受制于自己的经济能力,本人一直戴着有线耳机,并在躺着看电影时发现了这样一个恐怖的事情:

没有一家笔记本支持 3.5mm 有线耳机线控!

好吧可能还是有的,反正在本人的搜索中并没有找到。仅仅搜到有几个型号的台式机,支持中间的那个暂停 / 继续键。这有什么用? 不能调音量,不能调下一曲,而且,又不是我的台式机!😡 于是求助于在搜索关键词中添加万能的程序员专用字眼:github ,发现了这篇文章:

Hacking in Android headset button support for Windows | Christian Barth Roligheten

Perfect,同志们!里边详细介绍了帅哥 Christian Barth Roligheten 为自己的 PC 添加 暂停 / 继续 按键支持的过程,结合了详细的 Python 源码并提供了仓库链接(roligheten/AndroidMediaControlsWindows)。本人在 Roligheten 研究声道图的基础上进一步分析, 在即将放弃希望之际,偶然中找到了 分辨三个不同按键的方法。

阅读全文 »

可能是最全最新的 “初体验”。
欸,一位朋友和我说,作者啊,你写这么多,指不定也没人看,一点意思都没有,还不如省下这点时间坐下来 喝 杯 奶 茶 ,对吧。我气不过啊,发出来,就想看看有多少人,看了这篇文章,完事了还能给我点个 👍 ,气一气我这炫富的朋友。

新一代 ECMAScript 和 Web Components 标准已经发展得非常全面,现代浏览器支持也十分广泛。纯原生代码也可以写出 Vue 单文件组件的类似效果。

<game-character data-name="El Primo" data-image="//example.dev/el-primo.png"></game-character>
import GameCharacter from '//example.dev/xxx.js';
GameCharacter.register('game-character');

Module + Components Example - CodePen

阅读全文 »