当前位置: 首页 > 知识库问答 >
问题:

如何建立到AWS设备场远程会话终结点的连接

鲁羽
2023-03-14

我尝试创建AWS设备场远程会话,我能够成功地做到这一点。创建的远程会话的响应JSON具有endpoint(wss)和主机地址(IP)。而不是登录到AWS设备场与设备交互。我想直接在我自己的网页上提供远程访问(我不确定这是否可能)。希望它可以在画布标记下呈现。

虽然我没有套接字方面的经验,但我只是尝试了一些示例代码来连接收到的Web套接字URL。

var wsUri = "wss://devicefarm-interactive.us-west-2.amazonaws.com/?X-Amz-Date=*&X-Amz-Credential=*&X-Amz-Algorithm=*&X-Amz-SignedHeaders=host&X-Amz-Signature=*&X-Amz-Security-Token=*";
var websocket = new WebSocket(wsUri);
websocket.send('ping');

下面是控制台的错误。连接在接收到握手响应之前关闭。

任何要实现的示例链接都会有所帮助

共有1个答案

顾承平
2023-03-14

我能重现那个错误。在chrome中检查页面后(因为它内置了一个web套接字调试器),我寻找了使用networking选项卡使用web套接字连接的示例,该示例将显示以下内容:

基本上,它的工作原理是不断地向我们发送图像流。

当我复制为cURL命令时,这就是结果

curl'wss://devicefarm-interactive.us-west-2.amazonaws.com/?X-Amz日期=20190518T211708Z

当我执行以下CLI命令时,我将返回endpoint:

aws devicefarm获取远程访问会话--arn-arn:aws:devicefarm:us-west-2:111122223333:会话:8f4af46d-8f86-4dcc-8324-e691ce3723f3/6b4dc632-188f-45b9-be32-3e9aa6881ed3/00000--地区us-west-2--查询远程访问会话。endpoint

"wss://devicefarm-interactive.us-west-2.amazonaws.com/?X-Amz-Date=20190518T212323Z&X-Amz-Credential=ASIAIU5CA7GBP5IEBR6Q%2F20190518%2Fus-west-2%2Fdevicefarm%2Faws4_request&X-Amz-Algorithm=AWS4-HMAC-SHA256&arn=arn%3Aaws%3Adevicefarm%3Aus-west-2%3A111122223333%3Asession%3A8f4af46d-8f86-4dcc-8324-e691ce3723f3%2F6b4dc632-188f-45b9-be32-3e9aa6881ed3%2F00000&X-Amz-SignedHeaders=host&X-Amz-Signature=aaaaqaqbbbb4e9f09b7312715c295a11b77bc0d9e7b21dcb61422a61f78a1f&X-Amz-Security-Token=FQoGZXIvYXdzEFcaDD2E90%2Bsp3i%2F%2F8cBbyKDA2EGKkFYSvXDR%2Fb7LfS%2FpQEPCWFVhe9eCOTSussvshjldx69CEFvVgV3JYtOvm2yu0UMVAxlDYlujvpMfSNwLx7FH%2B42k9qGYuvy5dQbVLg%2F%2BCRuyK9OjCxpD5pUfQ9b81U6LawcI2I1CekXeTgapRuTK9tCPcGtNOlxAvWQUVlyDGTtmqjz7vRlostquMoenNr9UB1v8jx0NSo1YIlrgY8YvZV2o5pcbYiI9I9CBD0%2F3snJZAyQtmPZkMT9gr9hI0jgX1X5MlOuarFmm%2F2Sn%2FH8L3ewMQXhvuho3OTNZTISBmUgJAbZSmQcazuDmjXqPkoNpYYcUb92vd2w5MbRfFSa5SHHXUMVcE5Wsop3BzwJyj%2FNyl59BdjFWdo82NgSFP6OBjYLjiux3hR2dx86ILJ9tfNMNfq0WXzL3Z%2BqecwMTxlxrLfZmPftsUDaO5RPtOP9uuI%2BPjfIOWOV7uFy9GjKG4HKFY%2BZVGgWhb1fVVG7%2BYHbPxgMaAKI3YJqmM9IIy8%2FdCjL74HnBQ%3D%3D%7CMjA1LjI1MS4yMzMuMTc5"

似乎已经签字了。使用wscat,我尝试连接到它。

endpoint=$(aws devicefarm get-remote-access-session --arn arn:aws:devicefarm:us-west-2:111122223333:session:8f4af46d-8f86-4dcc-8324-e691ce3723f3/6b4dc632-188f-45b9-be32-3e9aa6881ed3/00000 --region us-west-2 --query remoteAccessSession.endpoint)

wscat -c $endpoint

错误:/usr/本地/lib/node_modules/wscat/node_modules/ws/lib/websocket.js:455抛出新错误(无效URL:${this.url});

稍后我需要花更多的时间在这方面,但我认为其中的一些内容很有帮助,所以我发布了它。

 类似资料:
  • 我的appium/python测试套件的测试都需要先登录应用程序。GitHub示例仅展示如何为套件中的每个测试设置/拆卸Web驱动程序。在我的情况下,它将是伟大的重用现有的WebDriver会话为所有的测试。 但是,在AWS设备场环境中,每个测试方法都会执行setUpClass/tearDownClass方法。我试图将webdriver创建为类变量,但在AWS设备场中无效(尽管在本地有效)。 设置

  • 我使用VS代码Remote-SSH连接到远程机器以修改文件。当前,在尝试连接远程时-ssh:connect to host。我得到错误消息,“无法建立连接到”:spawn enotdir。 完整的错误日志如下: 我已经尝试重新安装远程开发包,并清除了远程中的。vscode-server文件。他们似乎没有帮助。

  • 似乎有一个类似的问题,关于的前身,我想使用。 我已经创建了一个基本的 docker-compose 堆栈,我从中运行我的 nodejs 应用程序。我想侦听调试器会话,并在本地 WebStorm 中调试我的 JavaScript 代码。 我通过以下方式进入容器 我调用我的nodejs脚本,调试器通过运行: 链接的帮助对我没有帮助,因为它假设我要使用<code>检查</code>进行本地运行: Jet

  • 当连接到远程主机以设置远程SSH连接时,我得到以下错误。

  • 问题内容: 根据EJB客户端应用程序上的Netbeans教程,我似乎无法调用该方法: 编译错误: 客户: ejb: 远程接口: 现在,如果接口被修改: Bean现在可以使用以下方法: 但是,有一个NPE: 如何正确调用该方法?EJB未实例化? 问题答案: 我从头开始。我能想到的唯一区别是,我没有创建EJB应用程序,而是为bean创建了EJB模块。否则,我认为是相同的。 结构体: 客户代码: 豆:

  • 问题内容: 我如何在客户端使用 HTML5 , CSS 和 JavaScript 编写网站,以便 在页面加载后 允许 客户端浏览器之间的直接tcp / ip连接 。 我需要这样做以减少延迟,因为该站点将要求将其中一个用户的输入尽快传输给另一用户,因此从客户端A到服务器再向客户端B发送数据并不是一个好习惯。选项。 我阅读了有关此主题的先前文章,但没有可用的解决方案/示例。据我了解,可以使用Silve

  • 我创建了Redis在ElastiCache下。它是可用的。 我有endpoint:。 我”发送到实例(通过和)。我正试图通过键入以下内容通过redis cli进行连接: Redis-cli-hportal-test.abcdef.ab.0001.abcd1.cache.amazonaws.com-p 6379 ping 我期待,但我得到了 无法在portal-test.abcdef.ab.0001

  • 我想运行我的应用程序的功能测试,它试图发布一个消息到AWS SNS。我尝试了LocalStack,发现它做了我在本地模拟和发布消息所需要的一切。但是我的应用程序使用amazon sdk client for java,并且当我在本地运行它时,它仍然尝试将请求发布到amazon region,而不是LocalStack 要确保应用程序与本地堆栈而不是AWS URL交互,需要什么配置?我们可以在AWS