問題タブ [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 に答える
465 参照

elixir - チャネル ペイロードの Elixir/Phoenix マップ

さて、db から取得した複数の要素 (同じ列名) をチャネル ペイロードに渡す良い方法を探しています。

例:は,ppl = Repo.all(People)を含む 2 つの結果を返します。(列名) は Mike と John の両方に使用されますが、チャネル ペイロードを通過するときは 1 つのマップしか渡すことができず、同時に両方の名前: John、名前: Mike を持つことはできません。id: 1, name: Mikeid: 2, name: Johnname:

チャネルを理解したように、クライアントに送り返すマップ (ペイロード) を使用します。データベースから取得した情報に基づいて、html を動的に生成する予定です。したがって、People からすべての ppl を 1 つのマップ/ペイロードで渡す必要があります。

私の現在の計画は、ppl 用に個別にマップを作成する再帰関数のようなものを作成することです。%{name1: John}そして、それらとパスを 1 つのマップとして結合するために%{name2: Mike}使用します。Map.mergeだから、私の質問: ペイロードで同じテーブル (同じ列) から複数の要素をパスするより良い方法はありますか? 任意の提案/推奨事項をいただければ幸いです。

ありがとう!

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

elixir - リンクのエラー: セッションの削除中 (PHOENIX)

現在のユーザーのセッションを削除するためのリンクがあります

リンクをボタンに変更すると、すべてが正常に機能しているように見えますが、何らかの理由で機能しません。

このエラーの原因である可能性があるため、私は混乱しています。

同じ問題に直面した人はいますか?

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

phoenix-framework - チャネルへのカスタム関数の追加

Chris McCord のチャットの例を変更して、機能を追加したいと考えています。基本的に、JavaScript クライアントが、JSON を使用して 、getUsersInRoom(room_id)などの多くの便利な関数にアクセスできるようにしたいと考えています。is_online(user_id)

しかし、これを行う方法がわかりません。Channels のドキュメントには、次のように書かれています。

各チャネルは、これら 4 つのコールバック関数 (join/3、terminate/2、handle_in/3、および handle_out/3) のそれぞれの 1 つ以上の句を実装します。

これは、これらの機能のみが許可されていることを意味しますか? 私が必要としているのはソケット API だと思いますが、これまでソケットを扱ったことがないので、助けていただければ幸いです。また、この例は、引数として渡された文字列を使用した直接関数呼び出しでも動作するようですが、チャット システムで JSON を使用する必要があります。どうすればこれを達成できるかまったくわかりません。

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

phoenix-framework - Elm アプリケーションがフェニックス チャネル ブロードキャストの受信を停止する

Elm、phoenix、および elixir は私にとってまったく新しいものなので、phoenix チャネルの使用をテストするために、チャネル テスト アプリを簡単なサンプル アプリにしようと考えました。アプリは古い「部品」から作られているため、他のものも含まれていますが、これについてはご容赦ください。

アイデアは、フェニックスエンドポイントへの http 呼び出しを行う複数の genserver があるということです。基本的に、エージェント プロセスに保持されているリストを更新しているだけです。そのリストは、phoenix チャネルを介して Elm アプリに表示されます。目標は、エージェントの状態が複数のプロセスで頻繁に更新されるとどうなるかを確認することでした。

これが私がこれまでに持っているものです。Elm アプリのセットアップを含むフェニックス サイトと、更新を行う genservers を含む別の Elixir アプリがあります。すべてが約 20 秒間正常に動作しますが、チャネル接続が切断され、ブラウザで更新しない限り再確立されません。バックエンドがまだ正常に動作しており、ブラウザー コンソールにもエラーがないことをログから確認できます。それで、ここでの取引は何ですか?チャンネル接続が失われた場合、自動的に再接続するはずだと思っていましたが、なぜ切断されるのでしょうか?

問題はelm-phoenix-socket にあると推測しています。これはelmアプリでセットアップされています:

バックエンドでブロードキャストが行われる方法は次のとおりです。

したがって、本質的に、genserver はそのハートビート エンドポイントに対して常に呼び出しを行っています。私は問題がここにあるとは思わない。問題が存在する別の可能性は、次のようなチャネル設定です。

user_socket.ex:

および heartbeat_channel.ex:

それで、問題は何ですか?それは本当に単純なことだと思います。

わかりました、ソケット転送がタイムアウトしたことがわかりました。しかし、なぜそれを行うのですか?

0 投票する
2 に答える
1564 参照

java - HBASE 用の JDBC Phoenix ドライバー、36 回再試行して例外をスローする

サーバー (リモート) にスタンドアロンの HBase をインストールしています。Phoenix を使用して通信する Java クライアントを作成しましたが、36 回試行して例外をスローすることがわかりました。

接続文字列:

私は何かが欠けているのでしょうか、まったく接続していません。

例外:

誰かが私を助けることができます..!