Moetalk桌面端无法正常使用的问题技术报告和解决方案
Moetalk桌面端无法正常使用的问题技术报告和解决方案
本文旨在分析和尝试解决Moetalk(Windows桌面端)始终无法正常使用的问题;初步剖析了可能的技术原因,并通过使用Nginx反代和重构bat脚本的方式解决了这个问题,本人愿意尽自己的绵薄之力,希望该技术报告和改进方案可以被采纳,以充分解决长期以来Moetalk桌面离线端无法正常使用的问题,也利好各位广大热爱BA却苦于各种原因不善技术操作的二创老师们!
背景介绍(给不知道BA的技术用户)
Moetalk是一款基于电子游戏《碧蓝档案》的同人剧情编辑器,集成了对话编辑、存档读取、在线预览、导入导出等功能。作为继Yuzutalk后目前使用最广泛的同人剧情编辑工具,它支持多平台使用,包括在线网页、PC桌面端和手机端,深受游戏和二创爱好者欢迎。
排查过程
在确认客户端无法正常使用,且确认为本地服务器(主要是EasyWebSvr 启动的后端服务器)导致的问题,我开始围绕后端Web服务器程序本身开始排查。
首先我检查了EasyWebSvr 配置文件,在确认配置文件本身无误后,我转向阅读浏览器提示。
1 | |
使用默认配置启动浏览器输入地址localhost(http/https协议 80端口),均显示错误ERR_SSL_PROTOCOL_ERROR,进一步查询得知,这种错误一般由于SSL 连接问题,且据称主要是因为系统时间异常导致,但检查系统时间并无问题,此时转向EasyWebSvr,猜测有可能是因为该后端Web服务器程序不支持SSL/TLS协议,导致SSL/TLS握手失败,由此导致现代浏览器无法正常访问,且确认强制http协议或IE模式下这个问题依然存在。
因此,我尝试更换了nginx后端作为Web服务器,并写入配置,编写配套一键启动、关闭bat脚本,最终妥善解决了该问题,以下是部署实施中遇到的问题和经验。
- 文件目录问题
在编写nginx配置文件时,初步阅读项目文件目录后,我选择以’.\MoeTalk\MoeData’作为根目录,但在实际部署运行时发现,显示前端的浏览器会反复跳转卡死,通过F12开发者工具检查源代码和网络请求,可能是因为这个目录下的index.html下HTML内嵌的js代码window.location.replace('../');没有正常工作,导致路由跳转失效,页面会卡死。在更换根目录为.\MoeTalk后,这个问题得到解决。
- SSL证书签名问题
在编写nginx配置文件时,我希望可以尽可能的直接访问本地的https端口,但实际部署时发现浏览器的ERR_SSL_PROTOCOL_ERROR错误依然存在,后经查询资料确认,若要使用https协议,Web服务器需要提供SSL数字证书签名,此处使用了openssl软件完成了SSL证书自签名(尽管网页会显示非可信CA),暂定有效期至2026/9/16(后续也可自行续期或重新签发证书),由此保证了在默认https协议下网页可以正常访问。
- 本地端口占用问题
在早期尝试运行nginx后端Web服务时,经常会出现nginx配置项正常,但网页无法正常打开的情况。在友人的协助下,通过netstat等工具,最终排查结果为可能是本地端口被其他程序占用,从而出现页面无响应或返回{'status':404}的情况。其中,已经查证的有:steamcommuity302.exe会占用80端口,kook.exe会占用8443端口,此外还有其他可能的各种联网应用或网络代理工具…..由此导致了各种可能的Web后端服务器运行正常但网页显示异常的情况。此处为nginx重新分配了http和https协议端口,确保浏览器可正常访问。
解决方案
对原Moetalk(Windows桌面端)重写了Web后端服务器实现方式和bat批处理启动/关闭脚本.
以下是更新后的部分脚本/配置代码(略去Nginx程序本体和其他无关文档)
StartNginx.bat:双击启动服务器,待命令行弹出后可按住Ctrl,鼠标左键点击任意一网页
1 | |
ShutNginx.bat:双击关闭服务器,待命令行弹出关闭Nginx后,按任意键即可完成Nginx服务器关闭
1 | |
nginx.conf:位于.\nginx\conf下,是Nginx的配置文件,一般不需要修改.
1 | |
使用方法
启动: 完全解压后双击StartNginx.bat,待命令行弹出后可按住Ctrl,鼠标左键点击任意一网页即可.
关闭: 双击ShutNginx.bat关闭服务器,待命令行弹出关闭Nginx后,按任意键即可完成Nginx服务器关闭.
鸣谢
在此感谢Moetalk开发和维护人(团队)的持续支持,感谢友人和Deepseek提供的技术支持和问题排查协助,感谢Nginx和openssl开发和开源团队.