2017-05-26 13 views
0

私はExtJSフロントエンドとSailsバックエンドを持つ既存のWebアプリケーションを持っています。現在、このアプリはデータ交換にXHRを使用していますが、WebSocketに切り替えることを希望しています。WebSockets with Sailsのページング

Sails Docsを読むと、io.socket.getを呼び出すと、返されたレコードセットにクライアントが登録されることになります。ただし、ページングするときは、現在のレコードページのサーバー送信イベントを受信することにのみ関心があります。

ユーザーページとしてレコードを購読解除する方法はありますか?

+0

あなたのページングは​​クライアント側ですか?すべてのレコードをロードしますが、一部のレコードのみを表示しますか? –

+0

ページングは​​サーバー側で、一度に25レコードずつ読み込みます。私は、現在表示されているレコードのサーバーイベントを受信することにのみ関心があります。私の質問を明確にするために、ユーザが次の25レコードをロードするとき、クライアントはおそらくレコードの最初のページにサブスクライブされているでしょう。 私は確かに受信されたメッセージに対していくつかのフィルタリングを行い、現在クライアント上にあるレコードに対してのみ動作することができますが、クライアント上に存在しなくなったレコードの登録を解除するためのAPIがあるのだろうか? –

+0

サブスクリプションのための青写真のアクションはありませんが、サブスクリプションのためのアクションをすばやく作成することができます。 findForPaginationアクションを作成し、照会したインスタンス以外のすべてのインスタンスをアンバインドします。 @お礼ありがとうございます。 –

答えて

0

io.socket.get()は、帆のBlueprint APIを使用している場合にのみ、あなたに登録します。それはfind whereを見て、それに応じてlimitskipのプロパティを設定していると言われています。したがって、照会されたインスタンスにのみサブミットされます。

var page = currentPage; 
var amount = 30; 

io.socket.get('/entry?skip=' + page * amount + '&limit=' + amount, function (entries) {});