大家好,最近在写一个 基于 go-cqhttp 的程序,想法是服务器端通过 WebSocket 跟 go-cqhttp 通信,捕获事件后通过 HPSocket 下发客户端
本来想用 C# 写的,但是想到 VS 的体积还是作罢了,但因为只会一点点易语言,所以过程中遇到很多棘手的问题
好在有咱们论坛,在其中找到了很多案例学习,现在小小的反馈一下给大家
源码引用模块:
HPSocket For E 5.8.5 beta3
精易模块[v9.5.5] - 不用也可以
最简单的实现了通过 HPSocket 建立 WebSocket(不支持wss,不支持多线程),注释还算齐全,没有注释的地方看方法备注就知道了
其中有两个需要注意的地方,一个是触发 OnUpgrade 升级为 WebSocket 协议时,需要拼接 Sec-WebSocket-Accept 请求头,这里看 WebSocket 协议规范的时候说通过 sha1 校验再 base64一下就行
但实际它是需要20位的,而咱们精易模块中的校验_取sha1方法返回的是40位的,好在精易模块提供了源码,还是解决了
另一个比较简单了,就是在发送数据的时候记得调用编码_utf8到gb2312转换一下编码格式,不然容易乱码