質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1713閲覧

Realm Object ServerにiOSからアクセスできない

Kenelaoy

総合スコア50

Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2017/12/17 14:00

編集2017/12/17 17:09

Realm Object ServerにRealmのオブジェクトを作成して、端末間でデータを共有したいと思っています
CentOS7のさくらのVPS上にRealm Object Serverを構築し、9080番でアクセスすれば管理画面に入れるところまでできました

iOS側からは以下のようなコードでログイン試行→ローカルでのRealmオブジェクト作成まで行っています

Swift

1let realmAuthURL = URL(string:"http://[サーバーアドレス]:9080")! 2 let realmURL = URL(string:"realm://[サーバーアドレス]:9080/~/realm")! 3 let credentials = SyncCredentials.usernamePassword(username: "[username]", password: "[password]") 4 5 SyncUser.logIn(with: credentials, server: realmAuthURL) { user, error in 6 DispatchQueue.main.async { 7 if let user = user { 8 Realm.Configuration.defaultConfiguration = Realm.Configuration( 9 syncConfiguration: SyncConfiguration(user: user, realmURL: realmURL), 10 objectTypes: [PCData.self] 11 ) 12 print("ログインに成功しました") 13 self.realm = try! Realm(configuration: Realm.Configuration.defaultConfiguration) 14 //print(self.realm.objects(PCData.self)) 15 16 if self.realm.isEmpty { 17 try! self.realm.write { 18 let data = PCData() 19 data.isOut = false 20 data.pcCode = "***METADATA***" 21 data.rentPCto = "" 22 data.IDinCourse = 999999999999 23 data.belonging = "Master" 24 25 self.realm.add(data) 26 } 27 } 28 } 29 30 31 } 32 } 33

ただ、これでビルドしてみると、ログインに成功してはいるようなのですが(「ログインに成功しました」が出力されている)、端末上に

Log

12017-12-17 22:53:30.880875+0900 PCManage[7021:1784833] Sync: Connection[1]: Connection closed due to error 22017-12-17 22:53:31.673562+0900 PCManage[7021:1784833] Sync: Connection[1]: Connected to endpoint '[サーバーのIP]:9080' (from '[自端末のローカルIP]:57032') 32017-12-17 22:53:31.684189+0900 PCManage[7021:1784833] Sync: Connection[1]: Writing failed: End of input


サーバー上には

Log

1proxy: attempting to upgrade client [自端末のグローバルIP]:57032 => headers: {"authorization":"Realm-Access-Token version=1 token=\"eyJhY2Nlc3MiOlsiZG93bmxvYWQiLCJ1cGxvYWQiLCJtYW5hZ2UiXSwiYXBwX2lkIjoiY29tLmFrYmFydC5hcHAuUVJ0ZXN0IiwiZXhwaXJlcyI6MTUxMzUxOTQwOCwiaWQiOiIwMzdmY2I5Yzc0MGE0ZjdhOGVhOTZkZmFhYjUxNmM2ZiIsImlkZW50aXR5IjoiZmI0NmQ1ZjNjYjRiNmE5NWExYWYyNDkzZGIxNjE5YzYiLCJwYXRoIjoiL2ZiNDZkNWYzY2I0YjZhOTVhMWFmMjQ5M2RiMTYxOWM2L3JlYWxtIn0=:Tn4Qa4vzvZ87lnW2htmt6rPCaLL5ASDkpqbcXT2eKskQ3NHJ3ePyMxvJjjyAq5rh8pb2syCM1Dh8LrVk9RilQsHwHRU9HyDOky/psePE4UfXidEJGYoML19R9mo+yjHPG7DeP0ykYltTjONJh+OpQkaelHYIMlKAwFP+hxeNWlVAIpjohkqmyr/de3++8IxcVV6/6wJUESdNpDq2e5GGKfxpSwbfhBagNi0m0aSNuwzoqJ5CFqbyoxsyyCZWx6XJ7ZueTmRvGx22SJcthRzxrQRrWMbMtF8yEHY/AARzycO/A/Zi5spXqAzQD6QIrkl5gGI/FwvnLvhvtPEFychXIg==\"","connection":"Upgrade","host":"[]","sec-websocket-key":"K0Tw7zhY3ov9h+VEqHtaPQ==","sec-websocket-protocol":"io.realm.sync.22","sec-websocket-version":"13","upgrade":"websocket"}.} 2sync: HTTP Connection[959]: Connection from 127.0.0.1:35414 3sync: HTTP Connection[959]: Connection initiates HTTP receipt 4sync: HTTP Connection[959]: HTTP request received, url = /realm-sync/%2Ffb46d5f3cb4b6a95a1af2493db1619c6%2Frealm 5sync: HTTP Connection[959]: 404 Not Found 6sync: HTTP Connection[959]: Connection is closed after HTTP response.

と表示されています
双方のエラーから推察するに、サーバー側のエラーなのかと思われますが、初心者でかつ、日本語での情報が少なかったため困っています

Realm Object Serverからデータを引っ張ってくるにはどのようにしたらいいのでしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

バージョンの違いで、Realm3.xにはROS2.xが必要だとのことでした
ROSのアップデートで解決しました

npm install realm-object-server

投稿2017/12/20 14:43

Kenelaoy

総合スコア50

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問