Skip to content

实现web验证 #121

Closed
Closed

Description

@xengine-qyt

web客户端示例.使用协议文档实现,支持登录,登录后通过websocket实现长连接.并且支持获取服务端超时过期通知,支持超时后自动断开链接

Activity

  1. added
    enhancementNew feature or request
    and removed
    enhancementNew feature or request
    on Jun 22, 2026
  2. 7 remaining items

  3. added
    enhancementNew feature or request
    and removed
    enhancementNew feature or request
    on Jun 24, 2026
  4. github-actions commented on Jun 24, 2026

    @github-actions
    Contributor

    Pull request created: #136

    Generated by 自动处理 Issue

  5. github-actions commented on Jun 24, 2026

    @github-actions
    Contributor

    已完成 Web 验证客户端示例的实现,PR 已提交:#aw_pr1

    实现内容

    新增了 XEngine_Apps/Authorize_APPWebClient.html,一个无需编译、浏览器直接打开即可使用的单文件 Web 客户端示例。

    核心功能

    1. WebSocket 长连接登录:通过 (host/redacted) 连接服务器,使用 JSON 协议(unOperatorCode=4097/AUTH_REQLOGIN`)完成登录
    2. 心跳保活:登录成功后每2秒发送心跳包(HB_SYN),与现有C客户端行为一致
    3. 过期通知接收:监听服务器推送的 AUTH_EXPIRED (0x1006) 消息,在日志中醒目提示
    4. 超时自动断开:收到过期通知后自动关闭 WebSocket 连接并重置登录状态
    5. 密码 MD5 加密:可选开关,与 C 客户端 _PASS_ENCRYPT 宏行为一致
    6. 动态验证码支持:一键获取动态码并自动填充
    7. HTTP API 辅助:注册、充值、查询剩余时间、获取公告、Token 续期
    8. 断线重连:可选自动重连(最多5次,3秒间隔)
    9. 实时日志面板:彩色区分发送/接收/成功/错误/警告消息,方便调试协议

    使用方式

    1. 启动服务端(WS 端口5301、HTTP 端口5302)
    2. 浏览器直接打开 Authorize_APPWebClient.html
    3. 配置服务器地址 → 连接 WebSocket → 登录(默认 admin/123123aa)
    4. 登录后可观察心跳日志;当服务端踢出或时间耗尽时,会收到过期通知并自动断开

    协议字段说明

    • 设备类型默认 WEB_CHROME=12,支持 IE/EDGE/CHROME/FIREFOX/SAFARI/OPERA 等所有 Web 类型(10~17)
    • 严格按照 XAuth_Protocol.h 和 Protocol_Parse.cpp/Protocol_Packet.cpp 中的 JSON 字段命名构造/解析消息
    • 心跳携带 xhToken 字段,与服务端心跳活跃检查机制对应

    Generated by 自动处理 Issue for issue #121 · ◷

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions