Skip to content

frameScript

通过 JavaScript 脚本操作 WebSocket 和普通 TCP 请求数据帧。

规则语法

txt
pattern frameScript://value [filters...]
参数描述详细文档
pattern匹配请求 URL 的表达式匹配模式文档
value生成规则的 JS 脚本,支持以下类型:
• 目录/文件路径
• 远程 URL
• 内联/内嵌/Values内容
操作指令文档
filters可选过滤器,支持匹配:
• 请求URL/方法/头部/内容
• 响应状态码/头部
过滤器文档

配置示例

txt
``` test-frame.js
// 发送预设数据
ctx.sendToServer('1 = 0x12300000');
ctx.sendToClient('1 = 0x1236666666');

// 处理发往服务端的数据帧
ctx.handleSendToServerFrame = function(buf, opts) {
  // 可以返回空、null、undefined 等
  return (buf + '').replace(/1/g, '***');
};

// 处理发往客户端的数据帧  
ctx.handleSendToClientFrame = function(buf, opts) {
  // 可以返回空、null、undefined 等
  return (buf + '').replace(/1/g, '+++');
};
```

wss://echo.websocket.org/ frameScript://{test-frame.js}

访问 https://echo.websocket.org/.ws 效果:

frame-script

可用全局变量

变量/方法描述
url完整请求URL
method请求方法(GET/POST等)
ip/clientIp客户端IP地址
headers请求头对象
rules规则数组,通过push添加新规则
values临时值存储对象
render(tpl,data)微型模板渲染函数
getValue(key)获取Values中的值
parseUrl同Node.js的url.parse
parseQuery同Node.js的querystring.parse
sendToClient(frame, options)发送数据(对象、字符串、Buffer)到客户端,用法见下面示例
sendToServer(frame, options)发送数据(对象、字符串、Buffer)到服务端,用法见下面示例
handleSendToClientFrame(buffer, options)处理(过滤或删除)发送到客户端的数据,用法见下面示例
handleSendToServerFrame(buffer, options)处理(过滤或删除)发送到服务端的数据,用法见下面示例