愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • 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://isoface.net \",0);}"}
1

  除上述方式外,也支援執行自定程式列表中型別為 JScript 的自定程式。建立一個名為 browser ,型別為JScript自定程式,內容如下。

//呼叫Chrome瀏覽器打開https://isoface.net/網頁
{
  DoOpenBrowser("chrome.exe","--kiosk https://isoface.net",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://isoface.net"}]
}
1
2
3
4
5
6

  如在自定程式中設定了參數,在任一已註冊會話ID的WebSocket客戶端中,發送以下格式的資訊,可執行上述JScript程式。

{"action":"script","taskname":"browser","params":[{"name":"url","value":"https://isoface.net"}]}
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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式