1

モデムからのメッセージを処理するために使用するphpソケットサーバーがあります。PHP WebSocketサーバーを作成したいのですが、モデムからメッセージを受信するたびに、それをWebクライアントに送信します。私は成功せずにそれをやろうとしている数日です。

それを行うための最良の方法はどうですか?ありがとう

これが私がやりたい方法です:

Modem ------> PHP Socket Server ------> Web Clients
                    v
                 database

しかし、それを行うための別の最善の方法がある場合は、教えてください。

ありがとうございました。

 

 

編集済み:これは、非ブロッキングソケットでのsocket_readエラーの代替手段です:http: //php.net/manual/pt_BR/function.socket-read.php#73509

4

1 に答える 1

2

ノンブロッキングソケットロングポーリング技術でそれを行うことができます。

ワークフローはこのようなものです。

  1. PHP は、ノンブロッキング ソケットを使用してモデムに接続します。
  2. Web クライアントは、5 分または 10 分後にタイムアウトになる長いポーリング http 要求を送信します。
  3. PHP は、着信クライアント接続をノンブロッキングとして作成しました。このようにして、PHP はすべてのクライアントをキューに追加します。
  4. PHP は、クライアントとモデムのそれぞれを繰り返し処理し、何かを書き込んだり読み取ったりできるかどうかを確認します。
  5. モデムから読み取るものがあれば、読み取って処理します。必要に応じて、メッセージが Webclient ソケットに書き込まれます。
  6. ステップ 5 と同じですが、Web クライアント ソケットからモデム ソケットに進みます。
  7. 追加の作業を行います。
  8. 手順 3 に進みます。

私は数ヶ月前に同様の状況にありました。PHPでWebセッションを維持する必要があり、PHPが接続されている別のサーバーもありました。完成できませんでした。後で、これのために Python に移行する必要がありました。

于 2012-12-29T19:13:43.033 に答える