gpt4 book ai didi

swift - 无法连接到 AWS EC2 上的 Realm 服务器

转载 作者:行者123 更新时间:2023-11-28 15:45:10 25 4
gpt4 key购买 nike

我无法连接到我在 EC2 上的在线 Realm 。我有一个 EC2 实例正在运行。我跑了start-object-server.command .我已经粘贴了我的 setupRealm() 的代码方法。

let address = "XX.YYY.ZZZ.AA:9080" // "IPv4 PublicIP" from my EC2 dashboard
var httpURL: URL! { return URL(string: "http://" + address)! }
var realmURL: URL! { return URL(string: "realm://" + address)! }

func setupRealm() {
// My credentials when setting up the Realm admin dashboard after launching realm object server.
let username = "XXXXX@gmail.com"
let password = "XXXX"

let credentials = SyncCredentials.usernamePassword(username: username, password: password)

SyncUser.logIn(with: credentials, server: httpURL) { user, error in
guard let user = user else {
print(String(describing: error!))
return
}
...
}
}
SyncUser.logIn产生此错误:
Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." 
UserInfo={NSUnderlyingError=0x600000059680 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)"
UserInfo={_kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}},
NSErrorFailingURLStringKey=http://XX.YYY.ZZZ.AA:9080/auth,
NSErrorFailingURLKey=http://XX.YYY.ZZZ.AA:9080/auth, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=61,
NSLocalizedDescription=Could not connect to the server.}

我也无法使用 Realm 浏览器登录到我的同步 Realm ,尽管我能够从 iOS 模拟器打开本地(非同步) Realm 。我正在运行最新版本的 Realm Browser。

奇怪的是,大约一周前,我能够使用我的应用程序和浏览器以及与该 Realm 同步的另一个应用程序连接到 EC2 Realm 。我已经比较了代码,它们基本上是相同的——我发现的任何差异我都非常确信它们无关紧要(我已经尝试将一些东西改回来,但无济于事。)

自从它开始工作以来,我已经安装了最近的 macOS 更新以及 Realm 2.5 更新。我在 Realm 更新方面遇到了一些麻烦,最终安装并重新安装了几次,但我相信它可以正常工作,并且再次使用最新版本的所有内容。我不认为我改变了什么,我不记得了。

不幸的是,我实际上不记得我设置 EC2 服务器的过程——即:
  • 我不认为我对 AMI 做过任何事情。我不记得安装任何或类似的东西。虽然我的 EC2 实例确实有一个 AMI ID:realm-object-server-hvm-20170309 (ami-d518b9c3) .所以也许我做到了。
  • 我的 key 对在我的 HD 上一个安全的地方,我想我在某些时候用过它……但我不记得了。
  • 我想我在某些时候使用了我的公共(public) DNS ......但我不记得了。

  • 我记得的是:
  • 我没有用 CocoaPods 做任何事情。我拖入 Realm 框架并做了 import RealmSwift (尽管我已经安装并使用了 CocoaPods 来做其他事情,并且可以将这些项目转换为使用 CocoaPods)
  • instructions to install Realm Object Server我唯一做的就是安装 macOS 包并运行 start-object-server.command启动服务器。在那之后我什么也没做。没有配置或安全组或任何东西。我没有做任何这些,因为我是一个相对的初学者,而且我不了解大多数(如果有的话)(用 swift 做得很好,但所有这些终端代码和服务器的东西通常都在我头上)。例如,我不太了解“强制设置”部分的任何内容,例如如何在配置文件中指定设置,或者如何将它们作为命令行参数提供。
  • 同样,我不清楚何时需要在终端中运行服务器。我今天才意识到 localhost:9080 的原因有时不起作用是因为我没有运行服务器。

  • 我确信我做错了很多事情,但奇怪的是这一切都过去了,即使我可能做错了或遗漏了所有事情。我希望有人能帮帮忙。非常感谢。

    PS。当我尝试以各种方式访问​​我的 Realm 时, Realm 浏览器的行为如下:

    (您可以通过我尝试的选项数量看到,我真的不知道我应该使用哪个/哪个选项。同样,其中一个在过去有效,但我不记得哪个)

    打开同步 URL, realm://XX.YYY.ZZZ.AA:9080/~/给出“请提供有效凭据以访问此 Realm ”对话框。而且我非常确定我输入了正确的凭据。

    打开同步 URL, http://XX.YYY.ZZZ.AA:9080/~/禁用“连接”按钮

    连接到对象服务器, realm://XX.YYY.ZZZ.AA:9080/给出“无法连接到服务器。”

    连接到对象服务器, http://XX.YYY.ZZZ.AA:9080/禁用“连接”按钮

    最佳答案

    I've got an EC2 instance running. I've run start-object-server.command.


    start-object-server.command用于运行 Realm Object Server 的本地实例;通过 http://localhost:9080 访问的那些.您可能需要小心,因为如果您在本地运行 ROS 的本地实例,并且尝试在 AWS 上远程连接到一个实例,那么您最终与哪台服务器通信可能会有些困惑。 :)

    I've pasted the code for my setupRealm() method.



    该代码看起来正确。请记住,如果您运行 start-object-server.command ,您将看到 localhost ROS 实例,因此这些凭证目前不会存在于您的 EC2 实例上。

    I also can't log in to my synced realm using the Realm Browser, though I am able to open local (non-synced) realms from the iOS simulator. And I am running the latest version of Realm Browser.



    这是正常的行为。您可以在浏览器中打开本地 Realm 文件,但对于使用 Realm 移动平台创建的文件,您需要连接到它们;你不能直接打开它们。如果您无法连接到 Realm,则意味着 Realm 移动平台没有运行,或者没有正确配置正确的 URL。

    我尝试设置我自己的 EC2 实例,并让它按预期工作。您可以判断它是否正常工作,因为您应该能够使用端口 9080 导航到您的公共(public) DNS URL,并查看 Realm Mobile Platform 仪表板登录页面。 (例如“ http://ec2-00-000-000-00.compute-1.amazonaws.com:9080”)。

    可能在您设置 EC2 实例时,Realm 移动平台本身也没有安装。如果是这种情况,您可以通过 SSH 连接到您的实例并运行 Ubuntu 安装脚本,轻松手动安装 RMP:
    # Setup Realm's PackageCloud repository
    curl -s https://packagecloud.io/install/repositories/realm/realm/script.deb.sh | sudo bash

    # Update the repositories
    sudo apt-get update

    # Install the Realm Object Server
    sudo apt-get install realm-object-server-developer

    # Enable and start the service
    sudo systemctl enable realm-object-server
    sudo systemctl start realm-object-server

    但问题的关键在于,您需要确认您可以访问 EC2 上的 Realm Mobile Platform 仪表板,以确认对象服务器确实在运行,并且您已设置正确的凭据。祝你好运!

    关于swift - 无法连接到 AWS EC2 上的 Realm 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43195607/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com