分类 琐碎 下的文章

在Linux上安装 Minicraft (KCauldron) 服务器

一次将windows MC Server迁移为Linux MC Server 的实况记录

背景

原本的 MC Server是部署在我的 windows 云服务器上的,但是由于 Windows 的内存占用过高,并且服务器不够稳定,于是开始着手准备将服务器更改为 Linux 。

服务器是使用的网上的懒人开服包 “KCauldron1.7.10基础插件整合v1.1” ,网络上应该都可以找到相关的版本下载。

- 阅读剩余部分 -

KOA与stream的一个坑

绝对不要使用 ctx.body = request.get(stream_link)

在我的一个本地Server中,制作了一个解析视频网站视频流的API

大概的形式是这样的,

由 nodejs 向 视频网站请求流,然后使用ctx.body = request.get(stream_link)的方式向本地播放器输出流。

但是这其中有一个非常大的问题,就是在关闭播放器,KOA也获取到 ECONNRESET 错误的情况下,无法 destory Request的流。

这就导致即使关闭了播放器,nodejs依然在下载对应的那个视频,如果多切换几个视频,后台就会有多个下载任务占用带宽。

找了半天没有找到处理办法,KOA的相关讨论也只是说尽量不要给ctx.body设置为HTTP流。

最后直接Hack了一下,在app上直接监听Error事件,发生ECONNRESET的时候直接process.exit(0),反正后台有 forever的Daemon。

至少目前还没有找到可靠的处理方法。

如果可以处理的话,思路大概这样,将HTTP stream的引用暂存起来,读取ECONNRESET,并且与对应的ctx对应,找到 stream ,想办法结束流。

这个就留待以后实现吧,仅在此做一个记录