問題タブ [ratchet]

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 投票する
2 に答える
1645 参照

php - Ratchet websocket で nginx-key X-Real-IP のプロキシ値を取得する方法

ラチェット websocket を使用して websocket アプリケーションをセットアップしています。私のセットアップは次のとおりです。私は(する必要があります)nginxサーバーをリバースプロキシとして使用し、Websocketラチェットサーバーにリクエストを転送します:

私の websocket アプリ内で、IP フィルタリングのために X-Real-IP の値 ($remote_addr) を取得する必要があります。このプロキシ ソリューションを使用する必要があるため、関数 stream_socket_get_name を使用すると、リモート IP として常に IP 127.0.0.1 を取得します。

私が調査した限り、この問題のラチェットは stream_socket_server を開始し、着信接続のリッスンを開始します。これらの接続はすでにストリームであり、http 要求ではないため、$_SERVER などを使用することはできません。

この値を取得する方法を知っている人はいますか?

よろしく

マーカス

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

php - BrainSocket for Laravel を使用して接続 ID を取得する

うまくいけば、単純な質問であり、私は盲目です.BrainBoxLabs(明らかにRatchetを使用するLaravelのWebSocketハンドラー)によるBrainSocketを実装しています。すべてが桃色ですが、接続IDにアクセスする方法がわかりません(どちらの側でも、主にサーバー側で)。

明らかに追跡する必要があり、クライアントがサーバーにメッセージを送信すると、サーバー ログに接続 ID が表示されますが、GitHub リポジトリのドキュメントは限られているため、アクセスするためのコマンドが表示されません。より広い意味では、BS を使用して、特定の接続のみが表示されるイベントを発生させる方法がわかりません。

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

javascript - Ratchet を使用した PHP WebSocket - 例が機能しない

ここでまず背景を説明します。

  1. 私の目的は、Ratchet WebSockets を使用して双方向のクライアント/サーバー通信を作成することです。

  2. ここで説明されているように、ラチェットと付属のソフトウェアをインストールしました。

  3. ここで説明されているように、Hello World アプリケーションを正常に作成しました。

  4. 今、このチュートリアルを使用してプッシュ機能を作成しようとしています。私はコードをコピーし、わずかに変更し (以下のコード コメントに記載されている変更)、ZMQ ライブラリをインストールしました (最新バージョン、php.ini に追加し、表示されますphp -m- 要するに、正しくインストールされています)。しかし、WebSocket は機能しません。

以下に、私のドメインへの実際のライブリンクを使用してテストプロセスを提供しますので、ご自分で確認してください.

  1. 私のプッシュ サーバーは、チュートリアルのサーバーとまったく同じで、IP がサーバーの IP に変更されています。これを SSH 経由で実行すると、正しく接続されているようです。

  2. 私の Pusher クラスは MyApp 名前空間にあり、チュートリアルと同じコードと同じ相対位置にあります。

  3. MySQL クエリを気にする必要がないため、私の post.php は少し変更されています。

このファイルはここにあります

  1. 私のclient.phpは、IEが動作するように少し修正を加えなければならなかったことを除けば、彼らのものと同じwhen.jsです。私の問題はブラウザに依存せず、修正が追加される前と同じです。

このファイルはここにあります

理論的には、これが起こるはずです(たとえば):client.phpコンソールをオンにしてChromeで開きます。post.php次に、Firefoxで開きます。Chrome のコンソールには、「新しい記事が公開されました...」などのメッセージが表示されます ( のconn.subscribe関数からclient.php)。しかし、私がこれを行うと、何も起こりません。push-server.php接続は開いたままです ( SSHでオフにするまで、「接続が閉じられました」というエラーは表示されません)。コンソールは空のままです。

過去数日間の関連情報はこれですべてだと思います。その大部分は、これを理解するために費やしました。ただし、問題がコードにあるのか、それとも私が気付いていないサーバー構成設定にあるのかを確認することさえできませんでした. だから、誰かが私を正しい方向に向けてくれることを願ってあなたのところに来ます。

重要な編集

問題は、Autobahn.js メソッドconn.subscribeが正しく機能していないことにあると確信しています。接続が確立されています。コードを次のように変更すると:

次にConnection established、コンソールに正しく表示されます。したがって、subscribe メソッドのトラブルシューティングを行う必要があると思います。誰かがそれがどのように機能するか、そして「トピック」と「データ」が正確に何であるかを説明できれば、それは大きな助けになるでしょう. Autobahn のドキュメントでは、このメソッドの引数として URL を使用しています (こちらを参照)。

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

facebook - Facebookのようにリアルタイムで通知するには?

Facebookと同じようにリアルタイム通知を作成しようとしています.多くのことを学び、検索した後、私は非常に混乱しています.何が正しくて何が間違っているのか説明してください..


サイトに Facebook と同じ数のユーザーがいる可能性があることを確認してください

  • ロングポーリングでリアルタイム通知できるか?はいの場合、利点、欠点、および制限は何ですか。
  • websockets でリアルタイム通知を行うことができますか?ユーザー数は facebook と同じになる可能性があることに注意してください。そうであれば、利点、欠点、および制限は何ですか。
  • 他の方法があれば教えてください。

錯乱

Web でどこまで学習したかを調べたところ、それWebsocketが良いことがわかりましたが、開いている接続の数に制限 (最大 5K) があるため、一度にユーザーの最大数は 5K にすぎず、これは Facebook のユーザー数よりも非常に少ないことを意味します。間違っていたら説明してください。

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

php - PHP WebSocket ZMQ - チャット操作 - 特定のユーザーにデータを送信

私はSymfony 2.2.11に基づくPHPプロジェクトに取り組んでおり、チャットスクリプトを機能させるために、次のチュートリアルhttp://socketo.me/docs/installに関連するソケットをインストールしました。

ServerCommand.php // WebSocket サーバーを起動するコマンドラインのコード

メッセージがデータベースに追加された後: MessagesController.php

チャットサービス: Chat.php

データを受け取る JS コード: messages.html.twig :

新しいメッセージを送信すると、DB に送られ、チャットのページに表示されます。

問題 : データは JS スクリプトのどこにでも置かれ、その結果、すべてのユーザーが同じ録音メッセージを受け取ることができます。

質問:特定のユーザーページ にデータ ランドを作成するにはどうすればよいですか?

ありがとうございました

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

php - Ratchet for PHP を使用して WebSockets 経由でバイナリ データをストリーミングする

Windows/IIS で Ratchet for PHP を使用して WebSocket サーバーを正常にセットアップしました。Pub/Sub および RPC 機能を使用できるように、Ratchet の利用可能な WAMP (WebSocket Application Messaging Protocol) セットアップを使用しました。これは、チャットや簡単な更新などの小さなことには最適です。私が興味を持っているのは、生のバイナリ データ (オーディオ/ビデオなど) をターゲット オーディエンス (1 人以上) にストリーミングする方法です...

サーバー:
- Windows 7 (64 ビット) / Windows 2008 Server Enterprise (64 ビット)
- PHP 5.4.x
- Ratchet (WebSocket サーバー) http://socketo.me/docs/wamp

クライアントのセットアップ:
- Autobahn |JS http://autobahn.ws/js/
- when.js https://github.com/cujojs/when

私のセットアップを使用して、ターゲット オーディエンスにバイナリ データをストリーミングできるソリューションはありますか? 前もって感謝します!

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

php - Autobahn.js - サブスクライブ時にデータを渡す方法

Ratchet と Autobahn.js を使用しています。サブスクライブ時にユーザー検証を行いたいので、セッション キーを Ratchet WAMP サーバーに渡す必要があります。サブスクライブイベントでサーバーにデータを渡す方法を教えてください。

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

php - ZMQ ハング - ZMQSocket::send

私は Ratchet を使用して PHP WebSocket をテストしてきましたが、明らかな理由もなく ZMQSocket::send が突然ハングし始めるまで、すべてが完全に機能していました。

ZMQ::MODE_NOBLOCK を使用できることに注意してください。これによりハングは停止しますが、問題は解決しません。つまり、クライアントはまだ何も受信していません。また、ボックスを再起動しましたが、問題は解決しません。

  • Ubuntu 12.04.1 LTS
  • PHP バージョン 5.3.10 - FPM/(およびプッシュ サーバー用の CLI)
  • ZMQ 拡張バージョン 1.1.2
  • libzmq バージョン 2.1.11

更新:コードを次のように変更して、問題を修正したようです:

問題は、1 時間か 2 時間ほど正常に動作していたのに、そもそもなぜハングしたのかということです。私が気をつけなければならないことはありますか?