問題タブ [reactphp]
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.
php - PHP proc_openがGoスクリプトからデータを受信していません
現在、ReactPHP Child-Process ライブラリ (proc_open() を使用) を使用して、Go アプリケーションからデータをストリーム形式で取得しています。ただし、stdout と stderr からすべての入力をダンプすると、bash でテストすると出力が得られますが、何も得られません。
Go スクリプトは次のとおりです: https://github.com/bwmarrin/dca/blob/master/main.go
Go スクリプトはゴルーチンを使用しているため、それが問題になる可能性がありますか? (わかりません。私は Go の開発者ではなく、プログラムを作成したわけでもありません。)
PHP 7.0.3 CLI を使用して Mac OS X 10.11.2 El Capitan で実行しています。
PHP コード:
React Child-Process はこちらにあります: https://github.com/reactphp/child-process
php - ReactPHP - UDP パケットの送信にかかった時間の長さを計っていますか?
現在、ReactPHP Event Loop と ReactPHP Datagram を使用しています ( https://github.com/reactphp/datagramで確認できます)。
現在、データグラム クライアントを使用して UDP サーバーに接続し、20 ミリ秒ごとにパケットを送信していますが、パケットの送信にかかる時間を測定する必要があります。これはReactPHPで可能ですか?
php - 非同期ソケット クライアントのバッファ サイズ
非同期ソケット接続でリモート サーバーに接続し、データを取得する必要があります。接続できますが、問題があります。
パッケージは分割して送信されます。2 つのオプションがあります。バッファーを設定して、すべての転送が完了したら、パッケージ全体を 1 つにまとめたり、断片を結合したりできます。最初のオプション(バッファのこと)が正しい方法だと思います。
バッファ サイズを定義していますが、最初の部分では機能しません。他の部分では機能しますが、この方法では、最初の部分が 5,24 KB に制限されているため、パッケージ全体を 1 つにまとめることはできません。
以下の私のコードを見つけることができます:
行の下にバッファサイズを定義しようとしました$stream->on('data', function ($data) {
が、ご想像のとおり失敗しました。正しい方法で処理する方法がわかりません。
前もって感謝します。
ssl - wss を stunnel とラチェットで動作させる
CentOS 7 で Apache v2.4、PHP v5.6、php-fpm を実行する
だから私は wss を stunnel と Ratchet で動作させようとしています。Ratchet の Hello World ( http://socketo.me/docs/hello-world ) は、ポート 8080 で非 ssl のテスト コードを使用して正常に動作しています。同じマシンから telnet を実行できるだけでなく、aa から telnet を実行することもできます。別のマシン。
読んでみると、ラチェットは ssl 接続をサポートしていないが、通信を stunnel でラップすることでサポートしていることがわかったので、ポート 8443 でリッスンする適切な証明書を使用して stunnel をセットアップしました。
Firefox のスクラッチパッドから wss を使用して接続しようとすると、次のエラーが表示されます:Firefox can't establish a connection to the server at wss://testserver.testdomain.com:8443
さまざまなログ ファイルを介して接続が作成されていることがわかりますが、確実な wss 接続を作成できないため、どこかで通信が失敗しています。 . 私が欠けているものやどこで失敗しているのかについてのアイデアはありますか? 以下のログ/コード
スクラッチパッド コード
Stunnel 構成:
Stunnel ログ:
ラチェットのサンプル出力:
Telnet 接続 1
php - Ratchet onopen クライアントが起動しない
Ratchet Socket Hello wordをローカル マシンに実装しようとしていますが、すべてが完全に機能しますが、サーバー サービスを実行すると vps centos サーバー上で動作します
ポートでリッスンを正しく開始します(ポートがリッスンしていることがLinuxでわかります)が、「clint.html」ページを開くとメソッドは起動しonopen
ませんが、サーバーは言います
新しいクライアントが接続されました!
そして2分後にそれは言う
クライアントが切断されました
クライアントにメッセージを送信すると2分かかり、クライアントはそれを受信しますが、サーバーとクライアントの間に安定した接続がないように思えます。websocket.readyState をチェックするたびに 1 に等しくない
ファイアウォールと vps サーバーのセキュリティを無効にしましたが、まだこの問題があります。私はそれをテストでき、すべてが機能するので、通常のphpソケット機能は問題なく機能することに言及する必要があります
が、ラチェットについてはonopen
メソッドにハングしているようです。
- ポート 9091 が開いています
- ファイアウォールが無効になっています
- abrandao.com/2013/06/websockets-html5-php/ はホワイトアウトの問題を解決し、クライアントからメッセージを送受信できます
しかし、ラチェットには接続時に問題があります
chat-server.php :
Chat.php クラス:
クライアントのhtml:
/li>
php - Ratchet PHP と長時間実行タスク
私はラチェットphpを使用しています。私はこのように始めています:
さて、onMessage()
私のPusherserver
クラス ( を実装するMessageComponentInterface
) で、長いブロッキング タスクを実行したいと考えています。これは、完了するまでに最大 10 秒かかる HTTP 要求になります。
onMessage()
前の HTTP リクエストの実行中に他のリクエストを自由に処理するにはどうすればよいですか? すでに与えられているphpバージョンを変更するアクセス権がないため、pthreadsを使用できません(これはスレッドセーフです)。
php - React Timer を介して (Ratchet) WampServer メソッドを呼び出す
Ratchet で WampServer をセットアップしています。WampServer のメソッドを 30 秒ごとに呼び出すタイマーをループに追加することは可能ですか?
次のコードを試しました:
しかし、タイマーは機能していないようです。
注: このコードはクラス メソッドであるため、$this は、WampServer ($this->wampserver) および WampServer によって使用されるループ ($this->loop) への参照を持つクラス オブジェクトへの参照です。私が呼び出しているメソッドは、WampServerInterface の一部ではありません。