欢迎光临散文网 会员登陆 & 注册

日麻折腾笔记Java篇(3)-天凤的websocket协议

2020-11-04 00:59 作者:天羽ちよこ  | 我要投稿

思路

天凤的websocket协议比较简单,可以直接在chrome浏览器中使用开发者工具看到与服务端的交互,如下图所示:

我们可以使用http代理来代理浏览器的流量,但由于这个协议是wss的,通过http代理是没法看到交互的文本内容的,所以需要搞一个https代理,还得整个证书,有些过于麻烦了。

我看到天凤的服务端地址是直接写在js文件中的,所以我们可以通过修改js文件的方式来将天凤的服务端地址修改为 localhost


编码

我们首先要实现一个简单的websocket代理,功能只需要有发送和接收文本消息的功能就行了。浏览器与客户端之间的websocket连接,我使用spring-boot那套东西,直接写一个handler和一个配置文件就行:

对于localhost服务端与天凤服务器的连接,我使用的是okhttp:

这里在接受到天凤服务器的消息时,将消息放入队列中,由另外一个线程将消息发送给浏览器客户端,下图是登录相关的测试,可以看到浏览器正常接收到了登录成功的响应:

awesome!


最后再实现我们第一步的思路,替换js文件,比较好的做法是使用zuul之类的代理将响应里的数据替换,我这里直接将天凤整个页面的html和js扒下来了,等后面再优化:


直接在浏览器中打开,能够打开但是控制台报了N个404的错误,疑似是lateset.js中有根据域名生成url的相关代码,我修改hosts并在本地配置了ng的反向代理,成功解决,运行如下:

应用日志如下:


日麻折腾笔记Java篇(3)-天凤的websocket协议的评论 (共 条)

分享到微博请遵守国家法律