ThingWorx Remote Access Client (RAC)
Remote Access Client (RAC) 用于由自定义混搭或
ThingWorx Asset Advisor 的
Remote 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 触发器会断开连接。要使其最有效,请确保已了解正在尝试转到的协议的连接和断开行为。
|
3. 浏览到保存软件包的位置,然后运行它以安装 RAC。例如,在 Windows 中运行 .exe 文件。在 Linux 和 OS X 上安装软件包。
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 用户界面配置相关设置,方法如下所示:
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 会自动刷新。 |