2013-02-14 87 views
0

我對node.js & socket.io相當陌生,但是我構建了一個websocket端點,它將簡單的數據推送到前端。使用WebSockets過濾和排序結果?

例子: { name : "Bob", eyes : "green", score : 100, fav : "true" }

很容易,如何使用Node.js/socket.io(那麼容易!),但我的問題是:

有沒有辦法來過濾和/或在推送到客戶端之前對數據進行排序?我意識到我可以在瀏覽器中使用JS來做到這一點,但是如果我有600人被推動,最終用戶只需要擁有「綠色」眼睛的人,那麼推動沒有綠眼睛的550用戶似乎是一種浪費。瀏覽器只是爲了去除它們。

回答

1

經過相當多的研究和演奏後,我得出結論認爲最好的方法是爲每個過濾點設置套接字「通道」。以我的第一篇文章爲例,我會有一個綠色,藍色,棕色(等)眼睛的頻道,然後根據用戶的需求訂閱該頻道的用戶。然後過濾將在客戶端完成,以確保列表/網格中不顯示重複項。

+0

我知道這已經很老了,所以只是想知道你是否仍然認爲這是最好的方法? – gjrwebber 2014-03-18 11:18:17

+0

IMO,它是。這個問題是基於我當時正在開發的一個項目,這是我們公司作爲實時數據源的巨大成功。這些渠道運作良好,終端用戶喜歡通過訂閱和退訂渠道來控制數據範圍。 – NotJustClarkKent 2014-03-20 00:05:44