問題タブ [ddp]
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.
javascript - DDP を使用してクライアントからサーバーにデータをプッシュする Meteor
厳密に型指定されたデータ駆動型のバックエンド プラットフォーム用の meteor/DDP サーバーを作成する予定です。サーバーは、クライアントにデータをプッシュすることも、クライアントからデータを受け入れることもできなければなりません。
DDP のドキュメントを読んだ後、プロトコルはデータのクライアント側サブスクリプションのみをサポートしているようです。ドキュメントから、Meteor がクライアントからサーバーにデータをプッシュする方法がわかりません。
ドキュメントには、DDP が「クライアントによるサーバーへのリモート プロシージャ コール」をサポートしていると記載されています。変更をサーバーにプッシュするための C(R)UD プロシージャを定義できると思いますが、ネイティブの Meteor エクスペリエンスから逸脱してしまうのではないかと心配しています。
どんな提案でも大歓迎です!
meteor - Meteor で DDP を介して利用できる方法はどれですか?
DDP を介して Meteor サーバーと通信する場合、次の方法が利用できることがわかりました。
myMethod
でメソッドを定義した場合Meteor.methods({ ... })
{"msg":"method","method":"myMethod","params":[],"id":"1"}
accounts-password
パッケージ を有効にした場合{"msg":"method","method":"createUser","params":[{ ... }],"id":"1"}
{"msg":"method","method":"login","params":[{ ... }],"id":"1"}
mycoll
サーバー上で 呼び出されるコレクションが存在する場合{"msg":"method","method":"/mycoll/insert","params":[{"_id":"some-doc"}],"id":"1"}
{"msg":"method","method":"/mycoll/update","params":[{ ... }],"id":"1"}
{"msg":"method","method":"/mycoll/remove","params":[{"_id":"some-doc"}],"id":"1"}
たとえば、現在利用できるのは です{"msg":"method","method":"/mycoll/find","params":[{"_id":"some-doc"}],"id":"1"}
。
では、どのメソッドが利用可能かについてのドキュメントはありますか? 私は何も見つけることができませんでした.多くの可能性を試してみて、それらを見つけただけです.
javascript - Meteor: DDP 経由でログインし、別の Meteor アプリで現在のユーザー オブジェクトを取得します
最初に少し背景を説明します:
メインアプリに接続された別のモバイルアプリケーションに取り組んでいます。接続が正常に開始され、サブスクリプションを通じてすべてのコレクションを取得できます。
ここで、ユーザーが 2 番目のアプリのインターフェイスからログインできるようにしたいと考えています。accounts-password とmeteor-ddp-loginパッケージをインストールしたら、クライアント側で次のコードを使用して、メイン アプリで認証できるはずです。
まあ、ここまではいい。エラーは表示されず、コンソールに成功メッセージが記録されます。ここで質問が来ます:
ログインしたばかりのユーザーのユーザー オブジェクトを取得するにはどうすればよいですか。
メイン アプリでいくつかの発行関数を設定しましたが、2 番目のアプリでクライアントがユーザー データを使用できるようになりません (他のコレクションは正常に動作しますが、Meteor.user() は未定義です)。
また、Facebook/Google/Twitter でログインするユーザーを認証するにはどうすればよいですか
meteor - Meteor: ポート 80 で Websocket をブロックするための回避策?
Meteor アプリに問題があります。一部のスマートフォンは、3G/4G 経由で接続するとサブスクリプションからデータを受信しませんが、Wi-Fi 経由で接続すると正常に動作します。Vodafone (モバイル ネットワーク オペレーター) がポート 80 への websocket 接続をブロックしているためだと思います。
DDPポートを変更することはできますか? 誰かがそれを機能させるための回避策を持っていますか?
環境変数を変更しようとしました"DDP_DEFAULT_CONNECTION_URL": "ddp+sockjs://xxxxxx.com:443/sockjs"
が、すべてのデバイスでアプリが壊れ、次のエラーがスローされます。
ご協力いただき、ありがとうございました。
meteor - 複数の隕石コレクションへの挿入の順序
基本的な meteor アプリケーションで予期しない動作が見られ、コメントを求める設計パターンの質問につながります。
meteor アプリには、外部ソースからグラフ ノードとエッジのリストを読み取り、ノードを Nodes コレクションに挿入し、エッジを Edges コレクションに挿入し、特別なドキュメントを 3 番目の Signal コレクションに挿入するサーバーがあります。クライアントは、変更を検出するために、3 つのコレクションすべてに「追加:」オブザーバーを持っています。
信号コマンドを描画する前に、すべてのノードとリンクがクライアントに表示されることを期待していました。代わりに、ノードとエッジの約 1/3 がクライアントのシグナル コマンドの後に追加されています。
すべてのデータが揃うまでグラフの描画を避けたいので、Signal コレクションを使用します。Meteorでこれを行うより良い方法はありますか? 使用すべき別のデザインパターンはありますか? これはよくある質問のようです。
meteor - DDP を使用して配列から要素を削除する方法
DDP サーバー ( https://github.com/cortexlang/web ) に、ユーザーが特定のドキュメントの履歴値のウィンドウをサブスクライブできる機能を構築しようとしています。履歴値の単純なサブスクリプションは次のようになります。
これにより、コレクション内の各ドキュメントの最新の 10 個のサンプルがMyCollection
配列で返されます。たとえばMyCollection
、単一の数値を持つ 1 つのドキュメントが含まれているとします。上記のサブスクリプションの結果は次のようになります。
これらのウィンドウは、非常に大きくなる可能性があります。したがって、新しい値が追加されたときに配列全体を送信するのは無駄です。代わりに、新しい値だけをクライアントにプッシュし、古い値をプッシュできたらいいのにと思います。
たとえば、ドキュメントが新しい値「3」で更新されたとします。私の配列は次のようになります。
ここで、配列全体を再度送信することもできました。ただし、「3」のみを送信し、「5」を削除できれば、はるかに効率的です。
cleared
DDP には、DDP がドキュメント内のフィールドをクリアできるようにするフィールドがメッセージにあることに気付きchanged
ましたが、ドキュメントからはまだわかりません ( https://github.com/meteor/meteor/blob/devel/packages/ ddp/DDP.md ) 配列から要素を削除する方法。