米米弹幕系统正式上线
在学院的新年晚会上,主办方使用了一个基于微信小程序的弹幕系统,让全场观众通过大屏幕发送弹幕互动。比较坑的是,该弹幕系统存在「高级弹幕」选项,以此向用户收费。考虑到这一系统的逻辑实际上并不复杂,笔者决定自己实现一个。它被命名为「米米弹幕系统」(Mimi Danmaku),其初代版本基于 Ajax 轮询实现。这是客户端的样子:
客户端基于 Electron 实现,这一过程也踩了不少坑。例如,为了在播放 PPT 时,还保持弹幕可见,就必须要让弹幕的窗口全屏且置顶,而且要忽略鼠标事件;在电脑连接了外部投影屏幕时,又需要在投影屏幕上打开全屏窗口等等。这些惨痛的 debug 历史都在客户端的 GitHub 仓库中得以体现,此处不再赘述。
当然,由于笔者是第一次接触实时通讯,程序上还存在不少缺陷。在进行调研后,笔者决定使用 WebSocket 代替原先效率极低的轮询,并重构一部分逻辑。经过数天的调试,现在全新的米米弹幕系统已经可以正常使用了。这个重制后的版本,成功实现了消息即时收发、自定义弹幕颜色、大小等功能。下一步笔者将把弹幕系统整合到直播中。附上链接:
mimi-chat
mimi-danmaku
同时还开放了一个随机生成用户名(来自魔兽世界)的 API:
随机用户名
本文更新于 2018 年 5 月 18 日:
galaxymimi.com 和 zsq.im 即日起全站支持 https 访问,ws 连接也升级为了 wss。
本文更新于 2019 年 3 月 27 日:
笔者决定使用 Heroku 部署弹幕服务,又重写了不少代码。可以在此处查看:
米米弹幕