トピックIDはどこに保存しますか?ソケットの範囲にあった現在のトピックを検出するにはどうすればよいですか?
def join("topic:" <> topic_id, _params, socket) do
...
socket= assign(socket, :topic_id, topic_id)
{:ok, socket}
end
を、私のユーザーは、上記のコードは毎回新しいtopic_idを上書きすることを意味し、同時に複数のトピックに参加することができます。
ソケット用として、私は使用することができますトピックが結合されている、それは本当ですか?
handle_in
でアクティブなトピックIDを知りたい場合はどうすればよいですか?例えば
:
def handle_in("new_message", params, socket) do
# what is the active topic id here?
end
Iこのかかわら:
def handle_in("new_message:" <> topic_id, params, socket) do
# now, I know that topic_id is the active topic
end
はこれを行うための別の方法がありますか?またはこれはどのように行われますか?あなたは、ユーザーがトピックを購読することができますチェックするために、追加の検証を行うことができるように
は、メッセージが送信されたときに、トピックに関連する設定があるかもしれないと私は、トピックIDを必要とする、ありがとう..:だからここにあなたがトピックIDを取得する方法ですが、部屋のトピックのベースは
"topic"
であると仮定しまた、私はソケットオブジェクトがチャンネルスコープにあると思ったが、ユーザスコープでそのオブジェクトを見つけたので、ソケットオブジェクト内のパラメータを暗号化できますか? – simo
実際には、ユーザーは地域チャンネルに参加できます。地域IDは関連するポリゴンを読み取るために使用されます。領地のポリゴンの内側または外側に送信された緯度経度、長いメッセージがあるかどうかを確認することができます。 – simo
あなたのparamsにterritory_idを送信する必要があります。 – Gazler