2017-09-10 7 views
3

私は画面上のいくつかのデータ更新情報を1〜2秒ごとに監視する必要があります。x秒ごとに反応してapiをポーリングする

componentDidMount() { 
    this.timer = setInterval(()=> this.getItems(), 1000); 
    } 

    componentWillUnmount() { 
    this.timer = null; 
    } 

    getItems() { 
    fetch(this.getEndpoint('api url endpoint")) 
     .then(result => result.json()) 
     .then(result => this.setState({ items: result })); 
    } 

これが正しいアプローチです: 私はそれを考え出した方法は、この実装を使用していましたか?

+0

これはこれを行う方法ですが、効率が悪く、アプリケーションを拡大縮小するときにサーバーに負荷がかかります。ソケット接続を使用すると、メッセージが到着したときに通知を受け取ることができます。これははるかに効率的です – Mikkel

+0

私はREST APIを消費するだけです...どうすればこの「プーリング」を適切に行うことができますか? –

+0

これは、サーバーに搭載されている技術によって異なります。あなたはウェブソケットがどのように働くかについていくつかの読書をしなければなりません、http://blog.teamtreehouse.com/an-introduction-to-websocketsの記事がありますが、遊ぶべきリソースがたくさんあります – Mikkel

答えて

0

「ws」プロトコルで処理するのは間違いです。使い方が簡単です:create storeフラグメントでは、websocketをストアに接続し、dispatch({type:RECEIVE_MESSAGE、payload:{room、message ....}}))を呼び出します。 誰かがメッセージを送ったら、それを受け取って還元店の正しい場所に置くことができます。

関連する問題