我有连接到我的EC2在线境界麻烦。我有一个EC2实例正在运行。我跑了start-object-server.command
。我粘贴了我的setupRealm()
方法的代码。麻烦连接到域服务器上的AWS EC2
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 = "[email protected]"
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.}
我也不能使用域浏览器登录到我的境界同步,虽然我能打开本地(非同步)从领域iOS模拟器。我正在运行最新版本的Realm浏览器。
什么奇怪的是,一个星期前,我能够连接到同时使用我的应用程序和浏览器,以及与境界同步另一个应用程序的EC2境界。我比较的代码,他们基本上是相同的 - 我发现任何差异,我很有信心,他们并不重要(我已经试图改变一些东西回来,但没有成功。)
自从它开始工作以来,我已经安装了最新的macOS更新以及Realm 2.5更新。我在更新领域时遇到了一些麻烦,并且几次安装并重新安装它们,但我相信它正常运行,再次,最新版本的一切。我不认为我改变了其他任何东西,我不记得了。
不幸的是,我居然不记得我设置了EC2服务器进程 - 那就是:
- 我不认为我做了AMI的东西做的。我不记得安装任何,或类似的东西。虽然我的EC2实例的确有一个AMI ID:
realm-object-server-hvm-20170309 (ami-d518b9c3)
。所以也许我做了。 - 我有我在一个安全的地方密钥对上我的房屋,我想我用它在某一点的东西......但我不记得了。
- 我觉得我用我的公用DNS在某些点的东西......但我不记得了。
什么我记得是:
- 我没有使用的CocoaPods什么。我拖入Realm框架,并做了
import RealmSwift
(虽然我已经安装和使用CocoaPods的其他东西,将罚款转换这些项目使用CocoaPods) - 在instructions to install Realm Object Server我做的唯一的事情是安装macOS捆绑并运行
start-object-server.command
启动服务器。过去我没有做过任何事情。没有配置或安全组或任何东西。我没有做任何这些,因为我是一个相对的初学者,我不明白最多,如果有的话(用swift做得很好,但所有这些终端代码和服务器的东西一般都在我的头上)。例如,我不太了解任何“强制性设置”部分,比如如何在配置文件中指定设置,或者如何将它们作为命令行参数。 - 同样的,我不清楚,当有必要在终端上运行的服务器。我今天才意识到,
localhost:9080
有时不起作用的原因是因为我没有运行服务器。
我确定我做了很多错误的事情,但奇怪的是,这一切都用于工作,即使所有的事情我可能做错了或遗漏了。我希望有人能帮帮忙。非常感谢。
PS。当我尝试以各种方式访问我的领域时,以下是Realm浏览器的行为方式:
(您可以通过选项的数量来看我试着说我真的不知道哪个是哪个/哪个应该再次使用,其中一个过去有效,但我不记得是哪个)
打开同步URL,realm://XX.YYY.ZZZ.AA:9080/~/
给出了“请提供有效凭证访问此领域”对话框。我很确定我输入了正确的凭证。
打开同步URL,http://XX.YYY.ZZZ.AA:9080/~/
叶禁用
连接到对象服务器,realm://XX.YYY.ZZZ.AA:9080/
给出了“连接”按钮“无法连接到服务器。”
连接到对象服务器,http://XX.YYY.ZZZ.AA:9080/
离开“连接”按钮禁用
谢谢你的回答蒂姆!当我用8080导航到我的公共DNS时,我什么都没有。 (“网站无法访问”)。我想尝试下一步,但我不知道如何通过SSH或任何这些东西进行连接。 –
不用担心乔纳森!出于好奇,你使用哪种AMI?只要你保存你的私人''。pem'文件,您可以在EC2仪表板中点击您的实例上的'连接',它将解释如何通过SSH进入它。 – TiM
我的AMI是realm-object-server-hvm-20170309(ami-d518b9c3)。我在https://github.com/realm/realm-mobile-platform/issues/166#issuecomment-291658263上启动了GitHub上关于此的一个线程,并且如果您对某些事情(包括私钥和内容)做出了回应想要在那里迁移。在我上床睡觉前检查一下,所以我会尝试连接明天,但我只想给你ami info :) –