我有連接到我的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 :) –