2017-05-27 7 views
0

質問

新しいデータがサーバーに追加されるたびにロードするにはどうすればよいですか?私は すぐに変更をロードする方法 - リアクションネイティブ

  • ユーザーはアプリが現在何が起こっているのすぐ

サーバーからテキストを表示するテキスト
  • サーバーにアプリ
  • ユーザーのアップロードを開き起こるたいと思うパートナーはどのような

    • ユーザーアップ負荷テキストサーバーへ
    • ユーザーリロードアプリ
    • アプリは、私は、サーバー用のexpressJSを使用していますし、私はそのテキストのすべてを保存していますサーバーから

    サーバー側

    テキストを表示サーバーはオフサイトのマングースDBにアクセスします。

    もっと私は、サーバーと クライアント間で通信するためのAPIをフェッチ使用しています

  • ノードJSサーバーを使用しています

    • 情報

    • クライアントアプリはです反応ネイティブで書かれています

    答えて

    0

    あなたのアプリがリクエストをどのようにしているのか分かりません。サーバーとクライアントの両方からの一部のコードが役に立ちます。しかし、私はあなたの状況に応じて2つの解決策を考えることができます:あなたは、サーバーへのサーバーの応答AFTERユーザーのアップロードテキストを必要とするので

    がアップロード要求

    からテキストを返し、あなたがupload requestresponse dataを使用することができます。次に例コードを示します。

    fetch('https://your-server.com/api/upload-text/', { 
        method: 'POST', 
        headers: { 
        'Accept': 'application/json', 
        'Content-Type': 'application/json', 
        }, 
        body: JSON.stringify({ 
        text: 'yourValue', 
        }) 
    }).then(response => response.json()) 
    .then(responseJson => { 
        // Here is your text returned from server 
        let serverText = responseJson.text 
    
        // Set your state here with new data 
        this.setState({ 
        textFromServer: serverText 
        }); 
        // Now you can display new data in your render method. 
    }) 
    

    このようにして、ユーザーは新しいテキストデータを取得するためにアプリをリロードする必要はありません。サーバーがアップロードリクエストに応答した後にアプリが更新されます。

    のWebSocket

    サーバーから必要なデータがない場合には、クライアントの要求に依存して、あなたはwebsocketsを使用することができます。このようにして、サーバーまたは他のクライアントからいつでも任意のデータをフェッチ/送信できます。 React Nativewebsocketsをサポートします。続きを読むhere

    +0

    ありがとう、私はアプリを常に聞くようにしていますが、私はそれが更新されるたびに新しいデータを取得したいと思います。その使用がそれを更新するものではない場合でも。 – pudility

    +0

    だからこそ私はwebsocketsを述べた。 Websocketを使用し、データが更新されるたびにクライアントにメッセージを送信します。そういうわけで、ウェブソケットが必要です。 – alix

    +0

    サーバーとクライアントの間の通信方法を確認するには、 'socket.io'の例をチェックしてください。それはかなり簡単です。 @pudility – alix

    関連する問題