2017-05-26 56 views
0

我有一個ExtJS前端和Sails後端的現有Web應用程序。目前該應用程序使用XHR進行數據交換,但我希望切換到Websockets。在Sails中使用WebSockets尋呼

讀取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) {});