2016-10-11 5 views
0

すべて:一緒express.jsとdeepstreamの仕事についての任意のチュートリアル

タイトルは、私が表現するために、かなり新しいです、尋ねたとDeepstreamとして、私は、私は彼らが一緒に作業することができますか疑問(またはそれらが個別に動作することがありますか?) ?

Deepstreamガイド部(https://deepstream.io/tutorials/integrations/) ではそれだけでどのように他のREST APIサービス(一つだけの小さな部分との共同作業には約すぎてフロントエンドと永続層を接続する方法を提供しますが、ない:https://deepstream.io/tutorials/integrations/other-http/が、あまりにもあまりありませんユーザーケース)

チュートリアル/例(許可されたチャットとフレンドチャットのような単純なケース)

おかげ

答えて

3

Deepstreamは現在、WebSocketのサーバーを初期化するためにhttpサーバを渡すことができます。しかし、deepstream.ioをC++空間にさらに移動させることで、deepstream.ioをさらに最適化したいので、この動作は非常に近い将来廃止される予定です。これは、httpサーバが設定可能ではないにもかかわらずさらに多くの同時接続を処理できることを意味します。

ほとんどの場合、ディープストリームクライアントを使用してアプリケーション全体を構築できます。 data-sync、events、rpcsの組み合わせは、バイナリアップロード/転送などの操作をしていない限り、タスクを達成するのに最適なツールを選ぶことで利益を得ることができることを意味します。類似している

ds.rpc.provide('add-numbers', function(data, response) { 
    var result = data.reduce(function(previousValue, currentValue) { 
     return previousValue + currentValue; 
    }) 
    response.send(result) 
    }) 

    ds.rpc.make('add-numbers', [ 1, 3 ], function(err, data) { 
    console.log('result: ', data) 
    }) 

を発現させるために:deepstream除い

app.post('/add-two', function(req, res) { 
    var result = req.body.data.reduce(function(previousValue, currentValue) { 
     return previousValue + currentValue; 
    }) 
    res.send(result) 
    }) 

はまた、サービスの発見などの概念を管理することになる古典要求/応答アトミック操作を必要とする場合

たとえば、RPCを使用することができロードバランシングを行い、必要に応じてクライアントにエンドポイントになる機会を与えます。

または使用のイベント:

ds.event.emit('score-changed', score++) 

ds.event.subscribe('score-changed', function(newScore) { 
    console.log(`The score changed on: ${newScore}`) 
}) 

やアプリケーションのデータをモデル化し、レコードを使用して、すべてのクライアントを渡ってそれを同期させるには:

var record = ds.record.getRecord('playerA') 
record.subscribe('score', function(newScore) { 
    console.log(`Player A score has changed to: ${newScore}`); 
});  
record.set('score', record.get('score')++); 

私はそれが役に立てば幸い!

関連する問題