ホームページ  >  記事  >  バックエンド開発  >  php+websocket のデモデバッグでは常に接続が中断されます

php+websocket のデモデバッグでは常に接続が中断されます

WBOY
WBOYオリジナル
2016-06-23 13:44:281597ブラウズ

こんにちは、私は最近インターネットから php+websocket のサンプル コードをダウンロードしましたが、デバッグ中に常に切断の問題が発生しました:
コード アドレス: http://www.lianyue.org/2013/2511/

1、設定しました必要に応じて IP アドレスとポート (8045) を開き、サーバー上で server/index.php を起動します
2. ポート 8045 が listen 状態であることを確認します
3. ブラウザー経由で http:/IP アドレスにアクセスします。 websocket は常に「接続が切断されました。6 秒後に自動的に再試行されます。

問題はどこにありますか?」というメッセージを表示します。 ?
お気軽に教えてください、ありがとう!


ディスカッションに返信(解決策)

テスト後、正常に実行できます
「接続が切断されたため、6秒後に自動的に再試行します」と表示された場合は、サーバープログラムを再実行できます

その後テスト中、正常に実行できます
「接続が切断されました。6 秒後に自動的に再試行されます。」の場合はサーバー プログラムを再実行できます。



上司、私の場合は「接続が切断されました。 6 秒後に自動的に再試行されます。」 、

を実行し、サーバー側の server/index.php を再実行すると、この情報も表示されます。
以下に示すポートに問題はありますか? (ポート 8045 を使用します):


また、server/config.php で設定した WEBSOCKET_HOST が 127.0.0.1 なのか、それとも外部ネットワーク IP なのかも知りたいです。
server/class/class_websocket.php の $host は 127.0.0.1 または外部 IP に設定されていますか?

ここの設定に問題があるのではないかと思います。外部 IP に設定されていますか? 127.0.0.1 に変更しましたが、まだ「接続が切断されました」と表示されます

それともポート設定に何か問題がありますか?ポート 8045 を開きました。上の図に示すように、netstat -anp でこのポートがすでにリッスン状態であることを確認しました。よろしくお願いします。

1. 例には何も変更を加えていません
2. ポートを変更した場合は、2 つの場所でポート番号の一貫性を保つ必要があります
メイン コントロールの js 部分とサーバー/構成。 php
そして、両側のローカルホストを一貫した状態に保ちます
3. 外部ネットワーク アドレスはどこですか?それはあなたのネットワークの出口ではありませんか?

1. 例には何も変更を加えていません
2. ポートを変更した場合は、両方の場所でポート番号の一貫性を保つ必要があります
メイン コントロールの js 部分とサーバー/構成。 php
そして、両側のポート番号を同じにしてください localhost は同じです
3. 外部ネットワーク アドレスはどこですか?それはあなたのネットワークの出口ではありませんか?



1,
コードに何も変更を加えていませんか?
websocket/index.php の設定:
WS_STATIC_URL = 'http://127.0.0.1/websocket/static';
WS_HOST = '127.0.0.1';
変更はありませんか?それはどのように機能するのでしょうか?

2. 以前にすべての 127.0.0.1 を自分のサーバー IP アドレスに置き換えてから、ブラウザーを介してサーバー IP アドレス/WebSocket にアクセスしました
すると、サポートされていないことが示され、常に「接続が切断されました。 6 数秒以内に自動的に再試行します。」

3. 外部ネットワーク アドレスは私のサーバー IP アドレスです

この実験的なアプリケーション プロジェクトは、元々はローカル サーバーでのテストに使用されていました。
実際の作業に適用する前に、まずローカル サーバーでデバッグする必要があります。
指定した接続のデモ接続に問題があります。テストしましたか?

この実験的なアプリケーション プロジェクトは、元々はローカル サーバーでのテストに使用されていました。
実際の作業に適用する前に、まずローカル サーバーでデバッグする必要があります。
指定した接続のデモ接続に問題があります。テストしましたか?



テストしたところ問題はないようですが、サーバーにデプロイすると問題が発生しました。
とても混乱しています。

昨日テストしたときに問題が発生しました。おそらくサーバーが開いていませんでした

最初にローカルサーバーでテストに合格し、それを外部サーバーに置く必要があります
こうすることで、どこにあるかを簡単に見つけることができます問題は

昨日テストしたときに問題が発生しました。おそらくサーバーが開いていませんでした

まずローカルサーバーでテストに合格し、それを外部サーバーに置く必要があります
こうすれば簡単に見つけることができます問題がどこにあるのか



わかりました。 OK、ヒントをありがとう。今度はローカルで試してみます。

サーバーにデプロイするときは、必ずサーバーのファイアウォールをオンにしてください。 ! ! ! !

サーバーにデプロイするときは、必ずサーバーのファイアウォールをオンにしてください。 ! ! ! !



ファイアウォールをオンにする必要があるのはなぜですか?ポート制限されるのが怖かったのでオフにしました!

プロンプトに従って変更します
WS_STATIC_URL = 'http://127.0.0.1/websocket/static';
WS_HOST = '127.0.0.1';


win でテストしましたが、この問題も発生しました。

WebSocket サーバーに変更してみてはどうでしょうか
これが 1 つです:
デモ: WebSocket チャット ルーム
ソース コード: WebSocket チャット ルームのソース コード
まだオープンソースです

WebSocket サーバーに変更してみてはどうでしょうか
ここにあります1 つ:
デモ: websocket チャット ルーム
ソース コード: websocket チャット ルームのソース コード
まだオープンソース



これは IE では動作しないようですが、サポートされていないのでしょうか? IE を開くとすぐに、警告ウィンドウが無限ループします。

図に示すように:



[OK] をクリックすると、再度ポップアップが表示され、確認した後もポップアップが表示され続けます。 。 。 。 。無限ループ。

友達、何か解決策はありますか?

websocket は HTML5 でのみ使用できます。この常識さえ知りませんよね?

php.ini extension=php_sockets.dll が有効になっているかどうかを確認してください

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。