Tiramisu
  1. 文档库
Tiramisu
  • 管理页面
    • 配置
      • 配置_读取_节点
    • 支付
      • 支付_创建_订单
    • 防红
      • 域名_项目列表
  • 节点操作
    • 前端专用
      • README.md
      • 文档库
        • 进入网站
        • 建立WebSocket
        • 拼接参数进行支付
        • API接口加解密
        • 查询订单成功后如何操作
        • 获取后端API地址
        • UpHash解密
        • 前端配置项
        • 获取分享链接
      • 挂载节点
        POST
      • 查询订单
        POST
      • 每日签到
        POST
      • 为视频增加浏览记录
        POST
      • 喜欢某个视频
        POST
      • 收藏某个视频
        POST
      • 查询收藏夹
        POST
      • 查询金币账单
        POST
      • 取消喜欢某个视频
        POST
      • 取消收藏某个视频
        POST
      • 查找节点视频
        POST
      • 查找节点信息
        POST
      • 查找某个域名
        POST
      • 节点购买视频
        POST
      • 查找节点已购视频
        POST
      • 获取微信OpenID
        POST
      • 获取应当使用的Hash
        POST
      • 更新节点
        POST
      • 创建投诉
        POST
      • 查询自己的投诉
        POST
      • 为节点更新昵称
        POST
      • 通过昵称反查节点
        POST
      • 查询热搜
        POST
      • coffee_获取首页
        POST
      • 节点查找订单
        POST
      • 域名_获取
        POST
      • 查找节点模板信息
        POST
      • 创建短链
        GET
      • 使用短链
        GET
      • 查询可用项目入口
        POST
      • 创建二维码
        POST
      • 查询自己的IP
        GET
  1. 文档库

建立WebSocket

概述#

建立webSocket为了后续实现即时通讯,但目前仅用于统计在线人数,所以维持心跳即可

核心思路#

建立链接 --> 传递Ping

域名#

域名为当前域名后面拼接/api/v1/ws?hash=XXXXXXXXXXXXXXX
image.png

数据相关#

数据结构#

type Protocol struct {
	Code    int        //不为0则失败(响应用到)
	Command string     //命令
	Data    string     //数据
	Err     string     //错误原因(响应用到)
}

依赖#

安装 pako
npm install pako

加密#

1.异或MD5后的Hash
function XorDec(msg, key) {
    let ml = (msg + "").length
    let kl = (key + "").length
    let pwd = ""
    for (let i = 0; i < ml; i++) {
        pwd += String.fromCharCode((msg[i].charCodeAt()) ^ key[i % kl].charCodeAt())
    }
    return pwd
}
2.Gzip编码
function zip(str) {
    var binaryString = pako.gzip(str, {
        to: 'string'
    })
    return binaryString
}

解密#

1.Gzip解码
function unzip(binData) {
    return pako.ungzip((binData), {
        to: 'string'
    })
    //return pako.inflate(binData, { to: 'string' })
}
2.异或MD5后的Hash
function XorDec(msg, key) {
    let ml = (msg + "").length
    let kl = (key + "").length
    let pwd = ""
    for (let i = 0; i < ml; i++) {
        pwd += String.fromCharCode((msg[i].charCodeAt()) ^ key[i % kl].charCodeAt())
    }
    return pwd
}

需求: 传递心跳#

核心思路:每隔5秒,向服务器传递ping
伪码如下:
上一页
进入网站
下一页
拼接参数进行支付
Built with