爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • TaskRunner帮助主页
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
      • 1. 设置
      • 2. 运用
        • 2.1. 注册会话
        • 2.2. 发送字符串消息
        • 2.3. Cmd 批处理
        • 2.4. PowerShell 批处理
        • 2.5. JScript/PascalScript 任务
        • 2.6. 运行工作流
        • 2.7. 在JS程序中使用WebSocket
        • 2.8. 执行数据库查询(SQL)
        • 2.9. 运行Python任务
    • MQTT说明
    • Python说明
    • 自定程序
    • 公共单元
    • 工作流
    • 运行卫士
    • 自定报表
    • 自动化作业
    • 控件使用
    • 函数程序

  • 开发手册

目录

WebSocket说明

# TaskRunner WebSocket说明

  TaskRunner 包含 WebSocket 客户端与 WebSocket 服务器,可与 FastWeb 的 WebSocket 服务器或者TaskRunner 自带的WebSocket 服务器连接,其他客户端可发送 WebSocket 消息实现远程执行 TaskRunner 功能。如需要了解 FastWeb 中 WebSocket的通讯方式请参考 Bean通讯。

# 1. 设置

  使用 WebSocket 服务的功能前,请先检查 TaskRunner 中 WebSocket 设置是否正确。如设置正确,TaskRunner 运行后日志中显示 WebSocket客户端连接成功。

  TaskRunner自带的WebSocket服务器的地址与HTTP服务地址一致,端口号也与HTTP服务的端口号一致。默认为 8080,默认的WS路径使用 /message。

  使用websocket路径的格式如下:

ws://localhost:8080/message
1

  如果服务端启用了SSL,假设示例端口为 8443,默认的WS路径使用 /message,则相应的路径格式如下:

wss://localhost:8443/message
1

  如果启用了身份认证,则 WS 路径如下:

ws://localhost:8080/sgc/auth/url/{USERNAME}/{PASSWORD}
1

  其中 {USERNAME} 与 {PASSWORD} 处分别修改为对应连接使用的用户名与密码。

# 2. 运用

  TaskRunner 的任务执行需配合 FastWeb 或者通用WebSocket客户端使用。

# 2.1. 注册会话

  连接至WebSocket服务器后,需注册会话才可使用TaskRunner的WebSocket功能。注册会话的格式如下:

{"action":"login","sid":"test"}
1

  向WebSocket服务器发送上述指令后,客户端会话注册完成,使用的WS会话ID为 test。

# 2.2. 发送字符串消息

  向其它连接的客户端发送字符串消息,使用以下格式进行发送。

{"action":"msg","sid":"{SID}","text":"{TEXT}"}
1

{SID} 为目标客户端的注册会话ID,{TEXT} 为发送的文本信息。

# 2.3. Cmd 批处理

  以下是通过直接执行的方式运行批处理的示例。可调用批处理语句执行程序重启。

{"action":"script","syntaxtype":"cmd","script":"taskkill /im TARS.exe /f & ping 127.0.0.1 -n 1 & start \"\" \"C:\\Program Files\\IsoFace\\TARS\\TARS.exe\" "}
1

  除上述方式外,也支持直接执行自定程序列表中批处理类型的自定程序。在自定程序列表中创建 tars 的Cmd类型自定程序,设计程序内容如下。

echo
:结束进程
taskkill /im TARS.exe /f
:执行下一步骤前等待1秒
ping 127.0.0.1 -n 1
start "" "C:\Program Files\IsoFace\TARS\TARS.exe"
echo
1
2
3
4
5
6
7

  在任一已连接的WebSocket客户端中发送以下格式的信息,可执行上述批处理程序。

{"action":"script","taskname":"tars"}
1

# 2.4. PowerShell 批处理

  以下是通过直接执行的方式运行批处理的示例。可调用批处理语句执行程序重启。

{"action":"script","syntaxtype":"powershell","script":"$directory = \"E:\\setup\";$filename = \"test.txt\";$content = \"hello world\";$filePath = Join-Path -Path $directory -ChildPath $filename;if (-not (Test-Path -Path $directory)) {New-Item -ItemType Directory -Path $directory};Set-Content -Path $filePath -Value $content;Write-Output \"file created:$filePath\";"}
1

  除上述方式外,也支持直接执行自定程序列表中批处理类型的自定程序。在自定程序列表中创建 ps_test 的PowerShell类型自定程序,设计程序内容如下。

# 指定目录位置
$directory = "E:\setup"
# 指定文件名
$filename = "test.txt"
# 指定文件内容
$content = "hello world"
# 创建完整的文件路径
$filePath = Join-Path -Path $directory -ChildPath $filename
# 创建目录(如果不存在)
if (-not (Test-Path -Path $directory)) {
    New-Item -ItemType Directory -Path $directory
}
# 创建并写入文件内容
Set-Content -Path $filePath -Value $content
# 输出文件创建成功消息
Write-Output "file created:$filePath"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

  在任一已连接的WebSocket客户端中发送以下格式的信息,可执行上述批处理程序。

{"action":"script","taskname":"ps_test"}
1

# 2.5. JScript/PascalScript 任务

  TaskRunner 通过 WebSocket 消息呼叫可实现 JScript/PascalScript 的执行。

{"action":"script","syntaxtype":"jscript","script":"{DoOpenBrowser(\"chrome.exe\",\"--kiosk https://www.isoface.cn \",0);}"}
1

  除上述方式外,也支持执行自定程序列表中类型为 JScript 的自定程序。创建一个名为 browser ,类型为JScript自定程序,内容如下。

//调用Chrome浏览器打开https://www.isoface.cn/网页
{
  DoOpenBrowser("chrome.exe","--kiosk https://www.isoface.cn",0);
}
1
2
3
4

  在任一已注册会话ID的WebSocket客户端中发送以下格式的信息,可执行上述JScript程序。

{"action":"script","taskname":"browser"}
1

  如果需要在JS程序中引入参数信息,则 JScript 自定程序可改写如下,将需要参数化的变量取值替换为 UgParams.Values["param_name"]:

{
  DoOpenBrowser("chrome.exe","--kiosk " + UgParams.Values["url"],0);
}
1
2
3

  如程序与参数直接通过json传入,直接调用的用法如下:

{
  "action": "script",
  "syntaxtype": "jscript",
  "script": "{DoOpenBrowser(\"chrome.exe\",\"--kiosk \" + UgParams.Values[\"url\"],0);}",
  "params":[{"name":"url","value":"https://www.isoface.cn"}]
}
1
2
3
4
5
6

  如在自定程序中设置了参数,在任一已注册会话ID的WebSocket客户端中,发送以下格式的信息,可执行上述JScript程序。

{"action":"script","taskname":"browser","params":[{"name":"url","value":"https://www.isoface.cn"}]}
1

  使用参数的json新增了 params 队列,可在其中根据参数需要修改取值。

{
  "action": "script",
  "taksname": "task_name",
  "params": [
    {
      "name": "param_name1",
      "value": "param_value1"
    },
    {
      "name": "param_name2",
      "value": "param_value2"
    },
    ...
  ]
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 2.6. 运行工作流

  使用websocket客户端发送以下格式的信息,以执行工作流。

{"action":"workflow","name":"test_wf"}
1

  如果需要从呼叫中获取参数作为工作流的变量取值使用,则发送的格式如下:

{"action":"workflow","name":"test_wf","params":[{"name":"Var1","value":"111"}]}
1

# 2.7. 在JS程序中使用WebSocket

  如需要在JS自定程序中使用WebSocket功能,可参考自定函数与自定程序中的函数、程序说明使用。

  • WSClient_WriteStream:客户端发送流消息。
  • WSClient_WriteString:客户端发送字符串消息。
  • WSClient_WriteIsoBean:客户端发送 IsoBean 关联的字符串信息。
  • WSServer_BroadcastString:服务端发送字符串广播消息。
  • WSServer_BroadcastStream:服务端发送流广播消息。
  • WSServer_WriteStream:服务端发送流消息。
  • WSServer_WriteString:服务端发送字符串消息。
  • GetWebSocketGUID:根据会话ID获取WebSocket连接的GUID。

# 2.8. 执行数据库查询(SQL)

  在 TaskRunner 中设置了数据库连接与SQL预设资料 后,可利用 TaskRunner 来执行 SQL 查询。发送的格式内容如下:

直接发送 SQL 语句:在 WebSocket 消息中可直接发送 SQL 语句来执行查询。示例如下(包含参数用法):

{
  "action": "execsql",
  "db_name": "demo",
  "sql": "Insert Into Table_Test(FCode,FName) values(:F1,:F2)",
  "params": [
    {
      "name": "F1",
      "value": "003"
    },
    {
      "name": "F2",
      "value": "f37"
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

使用SQL预设资料执行查询:如在SQL预设资料中设置了查询信息,可发送需查询的SQL预设资料来执行查询。创建一个名称为 SQL001 的预设资料,查询语句示例如下(包含参数用法):

Insert Into Table_Test(FCode,FName) values(:F1,:F2)
1

  呼叫 WebSocket 执行数据库查询的文本示例如下:

 {
  "action": "execsql",
  "db_name": "demo",
  "sql_command_id": "SQL001",
  "params": [
    {
      "name": "F1",
      "value": "043"
    },
    {
      "name": "F2",
      "value": "d23"
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 2.9. 运行Python任务

在 WebSocket 消息中使用以下格式发送来添加Python运行任务。示例如下:

{
  "action": "pythonscript",
  "pyid": "{pyid}",
  "varname": "{varname}",
  "varvalue": "{varvalue}"
}
1
2
3
4
5
6

  其中 {pyid} 为预设资料(资料类型为python)的编号。{varname} 为python输入变量的名称。{varvalue} 为python输入变量的的取值。

  这个接口的作用是从预设资料的Python脚本中创建运行任务,排入运行队列中,运行队列中的任务会按照请求的先后顺序依次进行执行。

RestAPI说明
MQTT说明

← RestAPI说明 MQTT说明→

Copyright © 2021-2025 爱招飞IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式