帆は

2017-04-23 16 views
0

Iは帆ソケットは、x、y座標のための範囲に基づいて、イベントをリッスンに問題があります。青写真は魔法を行うので、説明なしindexアクション:帆は

私の帆のサーバー側は基本的で、デフォルトでは。そして、私のカスタムルートとコントローラのアクション内で、私はMapEventモデルを更新した後、私はちょうど呼ん

Mapevents.publishCreate(MapEvent);

クライアントは、次のようになります。

var db_query = { 
    "x": {"greaterThanOrEqual": 55}, 
    "x": {"lessThanOrEqual": 75}, 
    "y": {"greaterThanOrEqual": 25}, 
    "y": {"lessThanOrEqual": 45}, 
}; 

io.socket.get('/mapevents?limit=10000&where=' + JSON.stringify(db_query), function(events) { 
    console.log(events) // all is ok, i get results of this range 
}); 

io.socket.on('mapevents', function(event){ 
    console.log(event); // bad, i get results of everything 
}); 

は、どのように私は、x/y座標のためのmapeventsを得ることができます範囲?

答えて

0

これまでのところ、それを解決するために自分の最高のアイデアをした

私はx_from、x_to、y_from、y_toを追加するデータベース内のすべてのユーザーのために。 すべてのユーザーがビューを変更した後、私はユーザービューのスコープでデータベースを更新します。したがって、ユーザーが画面を左にドラッグすると、別の座標範囲が表示されます。

はその後、すべてのユーザーが「1」とは、例えば、独自の「user_idは」ソケットの部屋で待機します。

任意MapEvent更新後のNode.jsサーバ側で

、MapEvent x、yは、変更(またはしない)を調整します。そして、私はスクリーンのこれらの座標の間にあるすべてのユーザーを取得します。だから私は3人のユーザーがこのMapEventが変更されたエリアを見ているようになるでしょう。

ので、サーバ側での私は、x、yの面積ことを観察し、これらのuser_idsを持つすべての3つの部屋のためにMapEvent.publishCreateを呼び出します。

関連する問題