問題タブ [phoenix-channels]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
384 参照

elixir - UserSocket でプレゼンスを追跡する

クライアントが特定のチャネルに存在する必要なく、UserSocker使用中のユーザーの存在を追跡しようとしています。Phoenix.Presence

後で、ユーザーの存在について通知されるように、さまざまなチャネルでユーザーの存在を購読したいと思います。

presence_diffユーザーが切断したときに を受け取ることを除いて、これは機能しました。私がやっていることはUserSocket、各ユーザーの個別のトピックからプレゼンスを追跡することです:

私のチャンネルから、ユーザーの個別のプレゼンス トピックを購読しています。

transport_pidどうにかしてソケットを監視し、ソケットが終了したときにプレゼンス diff を自分で送信する必要があるという結論に達しました。

もう 1 つのアイデアは、クライアントを関数とは別のプレゼンス チャネルに参加させることUserSocket.connect/2でしたが、これまでのところ、それをアーカイブする方法がわかりませんでした。

問題の概要を説明するテストを使用して、単純なフェニックスアプリをハッキングしました: https://github.com/kbredemeier/socket_presence

これに関するアドバイスをいただければ幸いです。

0 投票する
1 に答える
113 参照

ajax - 認証されていないユーザーに ajax の代わりに phoenix チャネルを使用することは、どれほど安全で慣用的でしょうか?

ちょっとしたコンテキストとユースケース: 認証されたユーザーがデータベースを検索して公開データを取得できるようにするこのフェニックスアプリがあります。認証されていないユーザーは、ajax 呼び出しとルートを使用してコントローラーをトリガーし、json 応答を送り返して同じ結果を得ます。

認証されていないユーザーをゲストなどとしてプライベートチャネルに接続して、ajax呼び出しを捨てることができますか? アプリでこれをどのように解決しましたか?

次のようにソケット接続を作成します。

socket = new Socket('/socket', {params: {guardian_token: app.guardian_token}})

できるとしたら、どんなことに気をつければよいでしょうか?

ありがとう