問題タブ [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.

0 投票する
0 に答える
84 参照

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

0 投票する
0 に答える
65 参照

php - ReactPHP - UDP パケットの送信にかかった時間の長さを計っていますか?

現在、ReactPHP Event Loop と ReactPHP Datagram を使用しています ( https://github.com/reactphp/datagramで確認できます)。

現在、データグラム クライアントを使用して UDP サーバーに接続し、20 ミリ秒ごとにパケットを送信していますが、パケットの送信にかかる時間を測定する必要があります。これはReactPHPで可能ですか?

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

php - 非同期ソケット クライアントのバッファ サイズ

非同期ソケット接続でリモート サーバーに接続し、データを取得する必要があります。接続できますが、問題があります。

パッケージは分割して送信されます。2 つのオプションがあります。バッファーを設定して、すべての転送が完了したら、パッケージ全体を 1 つにまとめたり、断片を結合したりできます。最初のオプション(バッファのこと)が正しい方法だと思います。

バッファ サイズを定義していますが、最初の部分では機能しません。他の部分では機能しますが、この方法では、最初の部分が 5,24 KB に制限されているため、パッケージ全体を 1 つにまとめることはできません。

以下の私のコードを見つけることができます:

行の下にバッファサイズを定義しようとしました$stream->on('data', function ($data) {が、ご想像のとおり失敗しました。正しい方法で処理する方法がわかりません。

前もって感謝します。

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

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

0 投票する
0 に答える
1204 参照

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>
0 投票する
1 に答える
2348 参照

php - Ratchet PHP と長時間実行タスク

私はラチェットphpを使用しています。私はこのように始めています:

さて、onMessage()私のPusherserverクラス ( を実装するMessageComponentInterface) で、長いブロッキング タスクを実行したいと考えています。これは、完了するまでに最大 10 秒かかる HTTP 要求になります。

onMessage()前の HTTP リクエストの実行中に他のリクエストを自由に処理するにはどうすればよいですか? すでに与えられているphpバージョンを変更するアクセス権がないため、pthreadsを使用できません(これはスレッドセーフです)。

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

php - React Timer を介して (Ratchet) WampServer メソッドを呼び出す

Ratchet で WampServer をセットアップしています。WampServer のメソッドを 30 秒ごとに呼び出すタイマーをループに追加することは可能ですか?

次のコードを試しました:

しかし、タイマーは機能していないようです。

注: このコードはクラス メソッドであるため、$this は、WampServer ($this->wampserver) および WampServer によって使用されるループ ($this->loop) への参照を持つクラス オブジェクトへの参照です。私が呼び出しているメソッドは、WampServerInterface の一部ではありません。