|
5精币
本帖最后由 正鑫软件开发 于 2023-11-4 10:36 编辑
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | 客户Duan | SunnyWSS客户Duan | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 索引 | 整数型 | | | 局_网址 | 文本型 | | | 局_协议头 | 文本型 | | | 发送数据数组 | 字节集 | | 0 | 发送数据 | 字节集 | | | 收到数据 | 字节集 | | | 类型 | 整数型 | | | 返回数据类型 | 整数型 | | | 抓包时的时间 | 文本型 | | | 消息明文 | 文本型 | | | JSON | 类_json | | | 消息组合 | 文本型 | | | 消息加密 | 文本型 | | | 消息字节集 | 字节集 | | | 好友消息集 | 文本型 | | | 好友消息内容 | 文本型 | | | 好友消息ID | 文本型 | | | 好友个人信息集 | 文本型 | | | 好友名字 | 文本型 | | | 好友userid | 文本型 | | |
局_网址 = “ws://************.oxnho.com:38888/”局_协议头 = 局_协议头 + “Connection: Upgrade” + #换行符 局_协议头 = 局_协议头 + “Host: ” + 文本_取出中间文本 (局_网址, “//”, “38888”, , ) + “38888” + #换行符 局_协议头 = 局_协议头 + “Sec-WebSocket-Key: ************” + #换行符 局_协议头 = 局_协议头 + “Sec-WebSocket-Version: 13” + #换行符 局_协议头 = 局_协议头 + “Upgrade: websocket” + #换行符 如果真 (客户Duan. 连接 (局_网址, 局_协议头, , 真) = 假)调试输出 (“WS连接失败:”, 局_网址, “错误信息”, 客户Duan. 取错误信息 ()) 返回 ()发送数据 = 到字节集 ( #握手包 )客户Duan. 发送数据 (发送数据, 1 )程序_延时 (100 )发送数据 = 到字节集 ( #token包 )客户Duan. 发送数据 (发送数据, 1 )程序_延时 (100 )时钟1.时钟周期 = 30000 循环判断首 ()收到数据 = 客户Duan. 接收数据 (2000, 返回数据类型 )调试输出 (收到数据, 返回数据类型 )如果真 (收到数据 ≠ { })消息明文 = UTF8到文本 (对称解密 (编码_BASE64解码 (到文本 (收到数据 ), ), 到字节集 (“***********”), #对称算法_3DES_ECB, #数据填充_PKCS5_PADDING, )) 调试输出 (消息明文 )JSON. 解析 (消息明文, , )如果真 (JSON. 取通用属性 (“body.groupId”, ) ≠ “” 且 JSON. 取通用属性 (“body.groupId”, ) ≠ “JSON解析失败”)消息组合 = 子文本替换 ( #回复_群消息, “$消息ID”, JSON. 取通用属性 (“body.msgId”, ), , , 真)消息字节集 = 到字节集 (消息组合 )消息加密 = 编码_BASE64编码 (对称加密 (消息字节集, 到字节集 (“***********”), #对称算法_3DES_ECB, #数据填充_PKCS5_PADDING, )) 发送数据 = 到字节集 (消息加密 )客户Duan. 发送数据 (发送数据, 1 )调试输出 (“群消息回复”)调试输出 (“群id” + JSON. 取通用属性 (“body.groupId”, ), “群消息ID” + JSON. 取通用属性 (“body.msgId”, )) 如果真 (寻找文本 (消息明文, “toUserId”, , 假) ≠ -1 )好友消息集 = JSON. 取通用属性 (“body.content”, )JSON. 解析 (好友消息集, , )好友消息内容 = JSON. 取通用属性 (“msg”, )好友消息ID = JSON. 取通用属性 (“msgId”, )好友个人信息集 = JSON. 取通用属性 (“extra”, )JSON. 解析 (好友个人信息集, , )好友个人信息集 = JSON. 取通用属性 (“userInfo”, )JSON. 解析 (好友个人信息集, , )好友名字 = JSON. 取通用属性 (“name”, )好友userid = JSON. 取通用属性 (“userId”, ) 如果真 (好友userid ≠ “” 且 好友userid ≠ “JSON解析失败”)消息组合 = 子文本替换 ( #回复_好友消息, “$消息ID”, 好友消息ID, , , 真)消息字节集 = 到字节集 (消息组合 )消息加密 = 编码_BASE64编码 (对称加密 (消息字节集, 到字节集 (“***********”), #对称算法_3DES_ECB, #数据填充_PKCS5_PADDING, )) 发送数据 = 到字节集 (消息加密 )客户Duan. 发送数据 (发送数据, 1 )调试输出 (“好友消息回复”)调试输出 (好友消息ID, 好友名字, 好友userid, 好友消息内容 )循环判断尾 (发送数据 ≠ { })线程_启动 (&功能_WebSocket_同步, , )发送数据 = 到字节集 ( #心跳包 )客户Duan. 发送数据 (发送数据, 1 )调试输出 (“发送心跳包”)
|
最佳答案
查看完整内容
异步模式判断:
同步模式判断:
同步模式下,接收数据失败后,通过取错误判断
|