[/quote
][e=1
].版本 2
变量名 | 类 型 | 静态 | 数组 | 备 注 |
http回调函数 | 整数型 | | |
WebSocket回调函数 | 整数型 | | |
Tcp回调函数 | 整数型 | | |
错误信息 | 文本型 | | |
Sunny中间件.
绑定端口 (2022
)http回调函数 =
到整数 (&__示例__HTTP回调函数
)WebSocket回调函数 = 0
Tcp回调函数 = 0
Sunny中间件.
绑定回调地址 (http回调函数, Tcp回调函数, WebSocket回调函数
)
如果 (Sunny中间件.
启动 ())

如果真 (Sunny中间件.
驱动_加载 (真) =
假)
信息框 (“启动进程代理失败,请尝试使用管理员运行”, 0, ,
)
结束 ()

Sunny中间件.
进程代理_添加进程名 (“we.exe”)
Sunny中间件.
进程代理_添加进程名 (“Chat.exe”)
Sunny中间件.
进程代理_添加进程名 (“XXXXX.exe”)
信息框 (“启动成功”, 0, ,
)
如果真 (Sunny中间件.
安装证书 (错误信息
) =
假)
信息框 (“自动安装证书到系统失败,请手动安装证书!” +
#换行符 +
#换行符 + 错误信息, 0,
“证书安装失败”,
)


信息框 (Sunny中间件.
取错误 (),
#错误图标, “启动失败”,
)
|
__示例__HTTP回调函数 | | |
|
SunnyContext | 整数型 | | | |
请求唯一ID | 整数型 | | | | MessageId | 整数型 | | | | 消息类型 | 整数型 | | | | 请求方法 | 文本型 | | | | 请求地址 | 文本型 | | | | err | 文本型 | | | | pid | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
sunny | Sunny | | |
bin | 字节集 | | |
sunny =
MessageIdToSunny (MessageId
)调试输出 (请求地址
)
判断 (消息类型 =
#Sunny_消息类型_发起请求 )
调试输出 (“消息ID”, 请求唯一ID,
“开始请求”,
“URL”, 请求地址
)

如果真 (请求方法 =
“POST”)

bin = sunny.请求.
取POST数据_字节集 ()

bin =
子字节集替换 (bin,
到字节集 (“SunnyNet”),
到字节集 (“Hello Sunny”), ,
)

sunny.请求.
修改Body_字节集 (bin
)


如果真 (寻找文本 (请求地址,
“ip138.com”, ,
假) ≠ -1
)














判断 (消息类型 =
#Sunny_消息类型_请求完成 )

如果真 (寻找文本 (请求地址,
“game/map_info”, ,
假) ≠ -1
)

bin = sunny.响应.
取响应Body ()

bin =
子字节集替换 (bin,
到字节集 (“你好”),
到字节集 (“哈喽”), ,
)

sunny.响应.
修改响应内容_字节集 (bin
)
调试输出 (“消息ID”, 请求唯一ID,
“请求完成”, sunny.响应.
取正文长度 (),
“URL”, 请求地址
)
判断 (消息类型 =
#Sunny_消息类型_请求失败 )
调试输出 (“消息ID”, 请求唯一ID,
“URL”, 请求地址,
“请求失败:” + err
)


返回 ()
[e=1].版本 2
.支持库 spec
.子程序 __启动窗口_创建完毕
.局部变量 http回调函数, 整数型
.局部变量 WebSocket回调函数, 整数型
.局部变量 Tcp回调函数, 整数型
.局部变量 错误信息, 文本型
' Sunny中间件 在模块中已是全局变量,直接使用即可
Sunny中间件.绑定端口 (2022)
http回调函数 = 到整数 (&__示例__HTTP回调函数)
WebSocket回调函数 = 0
Tcp回调函数 = 0
Sunny中间件.绑定回调地址 (http回调函数, Tcp回调函数, WebSocket回调函数)
' Sunny中间件.设置IE代理 () ' 设置IE代理
' Sunny中间件.关闭IE代理 ()'取消IE代理
.如果 (Sunny中间件.启动 ())
' 启动,如果 启动进程代理 启动失败 或者启动成功后捕获不到数据,请搭配Proxifier使用
.如果真 (Sunny中间件.驱动_加载 (真) = 假)
信息框 (“启动进程代理失败,请尝试使用管理员运行”, 0, , )
结束 ()
.如果真结束
' 针对所有进程
' Sunny中间件.进程代理_设置捕获任意进程 (真)
' 或者 针对指定进程名
Sunny中间件.进程代理_添加进程名 (“we.exe”)
Sunny中间件.进程代理_添加进程名 (“Chat.exe”)
Sunny中间件.进程代理_添加进程名 (“XXXXX.exe”)
' 设置后,若是没有捕获到相应数据,不重启本程序,重启目标程序,后再试!
信息框 (“启动成功”, 0, , )
.如果真 (Sunny中间件.安装证书 (错误信息) = 假)
信息框 (“自动安装证书到系统失败,请手动安装证书!” + #换行符 + #换行符 + 错误信息, 0, “证书安装失败”, )
.如果真结束
' 安装证书请阅读:http://esunny.vip/ 中的 [Sunny网络中间件-示例文档]->[(教程)安装证书]
.否则
信息框 (Sunny中间件.取错误 (), #错误图标, “启动失败”, )
.如果结束
.子程序 __示例__HTTP回调函数
.参数 SunnyContext, 整数型, , Sunny中间件可创建多个 由这个参数判断是哪个Sunny回调过来的
.参数 请求唯一ID, 整数型
.参数 MessageId, 整数型
.参数 消息类型, 整数型, , #Sunny_消息类型_
.参数 请求方法, 文本型
.参数 请求地址, 文本型
.参数 err, 文本型
.参数 pid, 整数型, , 进程PID 若等于0 表示通过代理远程请求 无进程PID
.局部变量 sunny, Sunny
.局部变量 bin, 字节集
' 必须使用该语句取回sunny对象
sunny = MessageIdToSunny (MessageId)
调试输出 (请求地址)
' 执行流程是 发起请求->请求完成/请求失败
.判断开始 (消息类型 = #Sunny_消息类型_发起请求) ' 发起请求 http/https请求 ' 【sunny.请求】 可 在 【发起请求、请求完成、请求失败】 中使用
调试输出 (“消息ID”, 请求唯一ID, “开始请求”, “URL”, 请求地址)
' 修改提交数据
.如果真 (请求方法 = “POST”)
bin = sunny.请求.取POST数据_字节集 ()
bin = 子字节集替换 (bin, 到字节集 (“SunnyNet”), 到字节集 (“Hello Sunny”), , )
sunny.请求.修改Body_字节集 (bin)
.如果真结束
' 对这个请求设置代理
.如果真 (寻找文本 (请求地址, “ip138.com”, , 假) ≠ -1)
' ' 设置HTTP代理 admin=账号 123456=密码 127.0.0.1:8888=上游代理
' sunny.请求.置代理 (“http://admin:123456@127.0.0.1:8888”)
' ' 没有账号
' sunny.请求.置代理 (“http://:@127.0.0.1:8888”)
' ' 或者
' sunny.请求.置代理 (“http://127.0.0.1:8888”)
' ' 设置Socket5代理 admin=账号 123456=密码 127.0.0.1:8888=上游代理
' sunny.请求.置代理 (“socket5://admin:123456@127.0.0.1:8888”)
' ' 没有账号
' sunny.请求.置代理 (“socket5://:@127.0.0.1:8888”)
' ' 或者
' sunny.请求.置代理 (“socket5://127.0.0.1:8888”)
.如果真结束
' 直接回复文件【2022/03/02新增】
' sunny.响应.修改或新增协议头 (“Content-Type: text/html” + #换行符 + “Server: Sunny”)
' sunny.响应.修改响应内容_字节集 (读入文件 (“C:\Users\qinka\Desktop\node.js”))
' 返回 ()
' 请注意 在【发起请求】中修改响应数据为 直接回复文件
' 将 不会执行【请求完成】【请求失败】
' 设置数据不需要指定文件长度,内部自动计算
' sunny.请求.终止发送() '使用后 这个请求将不会发送出去 2022-09-16 新增【只能在 发起请求 中使用】
' sunny.请求.置请求超时 (15 × 1000) ' 对这个请求设置15秒的超时时间
.判断 (消息类型 = #Sunny_消息类型_请求完成) ' 服务器返回数据
' 修改响应请求
.如果真 (寻找文本 (请求地址, “game/map_info”, , 假) ≠ -1)
bin = sunny.响应.取响应Body ()
bin = 子字节集替换 (bin, 到字节集 (“你好”), 到字节集 (“哈喽”), , )
sunny.响应.修改响应内容_字节集 (bin)
.如果真结束
' 【sunny.响应】 仅可在 【请求完成】 中使用 在【发起请求、请求失败 中操作响应对象,只能操作设置数据】
调试输出 (“消息ID”, 请求唯一ID, “请求完成”, sunny.响应.取正文长度 (), “URL”, 请求地址)
.判断 (消息类型 = #Sunny_消息类型_请求失败) ' http/https请求 请求失败
' 返回数据【2023/01/06新增】
' sunny.响应.修改状态码 (200)'不设置默认就是200
' sunny.响应.修改或新增协议头 (“Content-Type: text/html” + #换行符 + “Server: Sunny”)
' sunny.响应.修改响应内容_字节集 (读入文件 (“C:\Users\qinka\Desktop\node.js”))
调试输出 (“消息ID”, 请求唯一ID, “URL”, 请求地址, “请求失败:” + err)
.默认
.判断结束
返回 ()