2017-10-19 27 views
0

Je dispose d'un serveur d'objets de domaine et essaie de synchroniser les données avec appareil Android comme:Synchronisation du serveur d'objet de domaine sur une connexion faible.

SyncCredentials syncCred = SyncCredentials 
      .usernamePassword(username, password, false); 
SyncUser.loginAsync(syncCred, url, new SyncUser.Callback() { 
     @Override 
     public void onSuccess(SyncUser user) { 
     ...some code... 
     } 

     @Override 
     public void onError(ObjectServerError error) {} 

il fonctionne très bien avec wi-fi mais en cas de connexion à faible Internet (par exemple mis en place le type de réseau GSM pour émulateur) i a obtenu une erreur (onError (ObjectServerError error) appels):

java.net.ProtocolException: unexpected end of stream 
at okhttp3.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:380) 
at okio.Buffer.writeAll(Buffer.java:993) 
at okio.RealBufferedSource.readByteArray(RealBufferedSource.java:106) 
at okhttp3.ResponseBody.bytes(ResponseBody.java:128) 
at okhttp3.ResponseBody.string(ResponseBody.java:154) 
at io.realm.internal.network.AuthenticateResponse.from(AuthenticateResponse.java:51) 
at io.realm.internal.network.OkHttpAuthenticationServer.authenticate(OkHttpAuthenticationServer.java:125) 
at io.realm.internal.network.OkHttpAuthenticationServer.loginUser(OkHttpAuthenticationServer.java:53) 
at io.realm.SyncUser.login(SyncUser.java:199) 
at io.realm.SyncUser$1.run(SyncUser.java:234) 
at io.realm.SyncUser$Request$1.run(SyncUser.java:585) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) 
at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
at java.lang.Thread.run(Thread.java:761) 

at io.realm.internal.network.AuthenticateResponse.from(AuthenticateResponse.java:53) 
at io.realm.internal.network.OkHttpAuthenticationServer.authenticate(OkHttpAuthenticationServer.java:125) 
at io.realm.internal.network.OkHttpAuthenticationServer.loginUser(OkHttpAuthenticationServer.java:53) 
at io.realm.SyncUser.login(SyncUser.java:199) 
at io.realm.SyncUser$1.run(SyncUser.java:234) 
at io.realm.SyncUser$Request$1.run(SyncUser.java:585) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) 
at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
at java.lang.Thread.run(Thread.java:761) 

est-il possible de synchroniser les données via une connexion Internet bas?

+1

Merci pour avoir signalé ce! il sera corrigé par https://github.com/realm/realm-java/pull/5447 – beeender

+0

@beeender, merci! – user5599807

Répondre