ThingWorx 扩展性 > 扩展 > 远程访问 > ThingWorx Remote Access Client (RAC)
ThingWorx Remote Access Client (RAC)
Remote Access Client (RAC) 用于由自定义混搭或 ThingWorx Asset AdvisorRemote Access and Control 模块使用 ThingWorx Remote Access 的功能。最终用户要连接到远程设备,需要在本地计算机和远程设备之间创建一个隧道。RAC 将启用该隧道。您可以从 ThingWorx Remote Access Client Downloads 页面下载 RAC
本主题包含以下章节:
快速入门
1. ThingWorx Composer 中,设置一个事物,然后将其连接到 ThingWorx Platform。设置事物时,请确保它满足以下远程访问条件:
a. 事物必须应用了 RemoteAccessible 事物形态。Axeda eMessage Agent 事物会自动应用此形状。
b. 事物必须在 RemoteAccessProvider 属性中配置相应的 RemoteAccessProvider
c. 事物必须可以报告。即,isReporting 属性的值必须为 true (以对号图标表示)。“报告”事物通常是绑定到 ThingWorx Platform 中的远程设备。
d. 事物必须配置了一个隧道端点。测试的理想候选对象是如下协议:
SSH - 适用于没有桌面组件的机器,TCP 端口 22
VNC - 适用于有桌面组件的机器,TCP 端口 5900
* 
按照设计,只要其中一端未中断连接,则 RAC 所创建的隧道就会保持活动状态。因此,ThingWorx Edge 隧道不支持可建立多个连接的协议,且不支持从 Edge 断开,例如使用浏览器访问 HTTP 服务器。例如,当您使用了错误的凭据或连接到您的计算机不信任的 RDP 服务器时,RDP 触发器会断开连接。要使其最有效,请确保已了解正在尝试转到的协议的连接和断开行为。
2. 您可以从 ThingWorx Remote Access Client Downloads 页面下载 ThingWorx Remote Access Client (RAC)
3. 浏览到保存软件包的位置,然后运行它以安装 RAC。例如,在 Windows 中运行 .exe 文件。在 Linux 和 OS X 上安装软件包。
4. RAClientLinker 小组件添加到混搭。有关详细信息,请参阅 将小组件添加到混搭
5. 在混搭中,使用在步骤 1 中设置和连接的 Edge 事物启动远程会话。以下过程随即发生:
a. 通过调用事物上的 StartSession 服务,对 ThingWorx Platform 中的选定事物请求远程会话。
b. RAC 应用程序 (tw-ra-client) 启动。
c. RAC 应用程序建立与 Remote Access Server 的连接,并显示会话信息。
* 
默认情况下,RAC 应用程序会连接到 WebSocket Secure (WSS)。如果必须通过清除文本 HTTP 端点访问混搭 (不推荐),则必须将 RAC 客户端配置为允许与未加密的 WebSocket (WS) 进行连接。要执行此操作,请修改 config.json 文件以使其包含 { "secure": false } 元素。有关操作系统中文件的位置,请参阅 主题“用于远程访问的管理员设置任务”的步骤 10 中的项目符号列表。禁用加密是不安全且不可取的做法,因此,除非绝对必要,否则请勿禁用加密。切记,RAC 应用程序可以连接到 WSS 或 WS 端点,但不能同时连接到这两者。
6. 将您的客户端应用程序连接到本地端口。RAC 应用程序会将客户端数据转发到 Remote Access Server (进而转发到远程设备),反之亦然。
浏览 ThingWorx Remote Access Client (RAC)
可以启动的客户端称为 ThingWorx Remote Access Client (RAC)。当您调用 RAClientLinker 小组件上的 LaunchClient 服务时,该客户端将启动。本节的其余部分将说明该客户端的用户界面。
从混搭启动时,RAC 用户界面在会话启动时可能如下所示:
在以上屏幕截图中,RAC 连接到的事物的名称是 ra-test-agent。消息窗口将显示当前状况,上述示例中的消息内容为 Server ready: connect client to <localhost:38367>。针对消息窗口右上方所显示图标的说明如下:
- 连接状况的指示符。黄色表示正在连接。指示符会进行动画演示,以指示客户端正在执行某些操作。
状况消息下方的参数列表包括:
Remote Entity - 表示 ThingWorx 中远程设备的事物的名称。在上面的示例中,事物名称为 ra-test-agent
Remote Server - 用于建立远程会话的 RemoteAccessProvider 的名称。在上面的示例中,远程服务器为 Axeda Global Access Server (GAS),名称为 gas.ptciot.io
Remote Endpoint - 该远程会话的远程接口类型。在上面的示例中,远程接口的类型是 TERMINAL,它指的是 SSH 或 Telnet 接口。
Created By - 启动此远程会话的用户的名称。在上面的示例中,用户名为 Administrator。
Start Time - 远程服务器启动远程会话的星期几、日期、时间和时区。在上面的示例中,会话开始时间为:2018 年 11 月 5 日,星期一,17:13:14 (5:13:14 PM),GMT 时区。
Duration - 远程会话持续时间 (从初始化到断开连接) 的小时数、分钟数和秒数。在上面的示例中,会话建立了六秒。
Bytes Transferred - 远程设备与启动 RAC 的计算机之间交换的字节数。对于 ThingWorxInternal 隧道,当设备端服务器就绪后,该值最初为一个非零值。在上面的示例中,远程设备正在运行 Axeda eMessage Agent。会话已准备就绪,但尚未与 Axeda eMessage Agent 完全建立连接,因此,该数字为 0。
会话就绪后,此指示符将变为在绿色背景中显示使用的端口号,远程访问服务器可随时连接到设备的消息随即显示:
* 
您可以单击端口号以将其复制并粘贴到客户端应用程序中。
- 如果要停止当前会话,请单击黑色方形图标。
- 单击此图标可移除屏幕中的会话。如果尚未停止会话,则单击此图标会停止会话,然后将其从屏幕中移除。
顶部栏的右侧包括以下内容:
- 此图标指示与 ThingWorx Platform 的连接状况。如果对号出现在绿色云中,则表示您已连接。
- 单击此图标可显示 RAC 的菜单:
要停止所有会话,请从菜单中选择 Stop All Sessions 选项。请注意,每个会话的信息将保持可见,直至您单击 将其移除为止。
如果必须在计算机和远程设备之间使用代理服务器,可从菜单中选择 Proxy Settings 选项来指定要使用的主机名和端口号:
* 
值得注意的是,启动 RAC 时可不使用任何用于设置代理设置的自变量。保存设置后,RAC 将继续使用通过 ThingWorx 混搭启动时配置的代理设置。
要显示有关 RAC 的版本信息,请选择菜单上的 About 选项:
当您准备关闭客户端时,请选择菜单上的 Exit 选项。退出时,系统会提示您结束所有活动会话 (如果存在)。
通过 UI 配置代理设置
如果未将代理配置指定为查询参数,则 ThingWorx Remote Access Client (RAC) 支持修改和保存代理设置。
* 
此时,RAC 不支持已验证的代理。
可以通过 RAC 用户界面配置相关设置,方法如下所示:
1. 在本地或从 ThingWorx 启动 RAC。
* 
如果在本地启动,则不会连接到 ThingWorx,但您仍然可以配置代理设置并进行保存。
2. 选择菜单图标 (三个点):
3. 从菜单中选择 Proxy Settings
4. 出现设置窗口时,请指定要使用的主机名和端口号:
5. 单击 Save
RAC 代理的连接
如果在 RAC 中指定了代理配置,则以下出站连接将通过代理服务器进行隧道连接:
ThingWorx Platform (使用 AlwaysOn 协议)。
Axeda Global Access Server (GAS) (使用 TCP)。
ThingWorx Internal Remote Access Provider (使用 AlwaysOn 协议)。
远程会话的状况
Remote Access Client (RAC) 可以在远程会话的状况中检测到 CLOSE_REQUESTED 的更改。当 RemoteAccessSubsystem 确定远程会话已超过其保持活动状态的最长时间时,会发生此更改。
要刷新远程会话的 lastActivityTime,RAC 将定期 (每隔 20 秒) 更新会话,以针对符合以下条件的任何会话刷新 bytesTransferred
RAC 所跟踪的传输字节大于 0
自上次更新会话以来,RAC 所跟踪的传输字节已更改
会话状况不是 TERMINATED
如果会话更新因会话不再存在而失败,则系统会将会话状况强制更改为 TERMINATED 状态。此更改将有效地停止刷新字节处理。
* 
此计时器仅对 ThingWorxInternalRemoteAccessProvider 客户端启用/必需。由于 Axeda Global Access Server (GAS) 会将定期状况更新发送到 ThingWorx eMessage 连接器,因此 GASRemoteAccessProvider 客户端不需要此计时器。GAS 客户端会话的 lastActivityTime 会自动刷新。